Desenvolvimento - Javascript
Entendendo o Objeto Date() do Javascript
O objeto deste artigo permite trabalhar com datas e horas, mostrarei como pode ser instanciado o objeto e comentarei seus principais métodos e propriedades. No final mostrarei um simples script usando o objeto.
por Robstown HolandaOlá! O objeto deste artigo permite trabalhar com datas e horas, mostrarei como pode ser instanciado o objeto e comentarei seus principais métodos e propriedades. No final mostrarei um simples script usando o objeto.
Com esse objeto é possível trabalhar com datas e horas em Javascript. Para que isso seja possível é preciso instanciar o objeto. Para criar o objeto Date, basta instanciar a classe, se nenhum parâmetro for fornecido, são assumidas a data e hora corrente, isto é, do computador que executa script.
Construtor
Para instanciar a classe com data e hora determinada, devem ser passados parâmetros. Existem varias maneiras de criar, como apresentadas a seguir:
- new Date(milissegundos)
- new Date(string_de_data)
- new Date(ano, mes, dia)
- new Date(ano, mes, dia, hora, minuto, segundo, milissegundo)
Todos os parâmetros passados no construtor devem ser numéricos. Com relação ao parâmetro mês, o numero 0 representa Janeiro e o 11 Dezembro. Se não for passada a hora, o objeto iniciará com a hora 00:00:00.
Com exceção da segunda opção que pode ser instanciada passando uma string da seguinte maneira: new Date("Jan 1, 2000 00:00:00")
A data e hora no Javascript começam em 00:00:00 h GMT de 01 de janeiro de 1970. Se você tentar criar uma instancia com uma data anterior irá obter um resultado aleatório.
Métodos
O objeto Date não possui propriedades, por outro lado, possui muitos métodos. A seguir serão apresentados alguns dos seus principais métodos.
- getDate(): devolve o dia do mês, um inteiro entre 1 e 31. Não confundir com getDay que retorna o dia da semana.
- getDay() : devolve o dia da semana, inteiro entre 0 e 6 (0 para Domingo).
- getHours(): retorna a hora, inteiro entre 0 e 23.
- getMinutes(): devolve os minutos, inteiro entre 0 e 59.
- getSeconds(): devolve os segundos, inteiro entre 0 e 59.
- getMonth(): devolve o mês, um inteiro entre 0 e 11 (0 para Janeiro).
- getTime(): devolve os segundos transcorridos entre o dia 1 de janeiro de 1970 e a data correspondente ao objeto ao que se passa a mensagem.
- getYear(): retorna o ano, os últimos dois números do ano. Por exemplo, para o 2006 retorna 06. Este método está obsoleto em Netscape a partir da versão 1.3 de Javascript e agora se utiliza getFullYear().
- getFullYear(): retorna o ano com todos os dígitos. Funciona com datas posteriores ao ano 2000.
- setDate(d): atualiza o dia do mês.
- setHours(h): atualiza a hora.
- setMinutes(m): muda os minutos.
- setMonth(m): muda o mês (atenção ao mês que começa por 0).
- setSeconds(s): muda os segundos.
- setTime(t): atualiza a data completa. Recebe um número de segundos desde 1 de janeiro de 1970.
- setYear(y): Muda o ano, recebe um número, ao que lhe soma 1900 antes de colocá-lo como ano data. Por exemplo, se receber 95 colocará o ano 1995. Este método está obsoleto a partir de Javascript 1.3 em Netscape. Agora se utiliza setFullYear(), indicando o ano com todos os dígitos.
- setFullYear(): muda o ano da data ao número que recebe por parâmetro. O número se indica completo ex: 2005 ou 1995. Utilizar este método para estar certo de que tudo funciona para datas posteriores a 2000.
- getimezoneOffset(): Devolva a diferença entre a hora local e a hora GMT (Greenwich, UK Mean Time) sob a forma de um inteiro representando o número de minutos (e não em horas).
- toGMTString(): devolva o valor do atual em hora GMT (Greenwich Mean Time)
Aplicação
A página abaixo é a página que terá todas as funções JavaScript apresentadas a seguir. A DIV chamada de datahora é utilizada para mostrar a hora e a data, que serão geradas por uma função JavaScript chamada “mostrarDataHora()”.
Listagem 1: Estrutura da página utilizada nos exemplos
<html> <head> <title>::: O Objeto Date:::</title> <script type="text/javascript"> //Coloque aqui as funções Javascript apresentadas a seguir </script> </head> <body onload="atualizarDataHora()"> <div id="datahora"/> </body> </html>
A função abaixo recebe como parâmetros a hora, o dia da semana, o dia do mês, o mês e o ano. Realiza uma formatação e atualiza o conteúdo da DIV chamada de datahora já apresentada.
Listagem 2: Função para exibir a data formatada
function mostrarDataHora(hora, diaSemana, dia, mes, ano){ retorno = "" + hora + "" retorno += "" + diaSemana + ", " + dia + " de " + mes + " de " + ano; document.getElementById("datahora").innerHTML = retorno; }
Na tag body do html existe um método chamado onload, esse método chama a função atualizarDataHora(), que seja mostrada a seguir. O evento onload de Javascript se ativa quando termina de ser carregada. Deve ser colocado na tag body, embora em versões modernas de Javascript, também o aceitam outros elementos como as imagens.
Com o evento onload podemos executar ações justo quando terminem de se carregar todos os elementos da página. É um evento bastante utilizado, pois é muito habitual que seja desejado realizar ações nesse preciso instante. Em nosso exemplo, vamos ver ativar uma função para atualizar a hora a cada segundo.
Listagem 3: Função para exibir a data e a hora atualizadas
function atualizarDataHora() var dataAtual = new Date(); var dia = dataAtual.getDate(); var diaSemana = getDiaExtenso(dataAtual.getDay()); var mes = getMesExtenso(data.getMonth()); var ano = dataAtual.getYear(); var hora = dataAtual.getHours(); var minuto = dataAtual.getMinutes(); var segundo = dataAtual.getSeconds(); var horaImprimivel = hora + ":" + minuto + ":" + segundo; mostrarDataHora(horaImprimivel, diaSemana, dia, mes, ano); setTimeOut("atualizarDataHora()", 1000); }
A função cria um objeto Date(), esse objeto será usado para pegar todos os dados que precisamos para a nossa aplicação utilizando os principais métodos que já foram apresentados neste artigo.
Listagem 4: Funções para obter dia e mês por extenso
function getMesExtenso(mes){ return this.arrayMes[mes]; } function getDiaExtenso(dia){ return this.arrayDia[dia]; }
Os arrays foram inicializados com os dias da semana e os meses do ano.
Listagem 5: Inicialização dos arrays com os dias e meses por extenso
var arrayDia = new Array(7); arrayDia[0] = "Domingo"; arrayDia[1] = "Segunda"; arrayDia[2] = "Terça"; arrayDia[3] = "Quarta"; arrayDia[4] = "Quinta"; arrayDia[5] = "Sexta"; arrayDia[6] = "Sábado"; var arrayMes = new Array(12); arrayMes[0] = "Janeiro"; arrayMes[1] = "Fevereiro"; arrayMes[2] = "Março"; arrayMes[3] = "Abril"; arrayMes[4] = "Maio"; arrayMes[5] = "Junho"; arrayMes[6] = "Julho"; arrayMes[7] = "Agosto"; arrayMes[8] = "Setembro"; arrayMes[9] = "Outubro"; arrayMes[10] = "Novembro"; arrayMes[11] = "Dezembro";
Com todas as informações nas mãos, é chamado o método mostrarDataHora() passando todos os parâmetros já mencionados anteriormente.
A função setTimeout() recebe dois parâmetros, o primeiro é a função que o programador deseja executar e o segundo parâmetro seta um tempo em milissegundos para ser realizada a função, período configurado neste exemplo para 1000 milissegundos, ou seja, 1(um) segundo.
Clique aqui para fazer o download do código-fonteUm abraço a todos e até a próxima.
Referencias
http://www.w3schools.com/- Como bloquear o botão CTRL e impedir impressão de página com JavascriptJavascript
- Principais Frameworks de JavascriptJavascript
- Conhecendo o HTML5 Notifications APIJavascript
- Como inverter links ou textos com JavascriptJavascript
- Criando um jogo da velha em DHTML (HTML+Javascript) com jvGameJavascript