Nenhum produto encontrado nessa seleção.
Trabalhar com datas utilizando o Objeto date em Javascript é relativamente simples, você pode tanto obter quanto criar uma data em um formato convencional, UTC, GMT e assim por diante.
O objeto date cria instâncias de datas, das quais você pode utilizar vários métodos para acessar ou modificar o ano, mês, dia, hora, minutos, segundos e milissegundos.
Criar uma data sem passar um parâmetro para o objeto date em Javascript, produz uma data baseada no horário local do computador cliente:
var data = new Date(); document.write( data ); // Resultado: Mon Apr 21 2014 10:26:53 GMT-0300 (Hora oficial do Brasil)
Criar uma data sem a palavra new, também produz uma data baseada no horário do computador local:
var data = Date(); document.write( data ); // Resultado: Mon Apr 21 2014 10:28:32 GMT-0300 (Hora oficial do Brasil)
Vejamos os parâmetros que podem ser passados para o objeto date em Javascript.
Parâmetros do Objeto date em Javascript
Um dos parâmetros que você pode passar como data para o objeto date, é o número de milissegundos desde 1 de janeiro de 1970 às 12:00 horas () até agora ou uma data específica (veja mais detalhes):
var data = new Date(1398087284822); document.write( data ); // Resultado: Mon Apr 21 2014 10:34:44 GMT-0300 (Hora oficial do Brasil)
No exemplo acima, 1398087284822 representa o número de milissegundos desde 1 de janeiro de 1970 às 12:00 horas até agora. Isso produz exatamente a data 21/04/2014 às 10:34:44.
Você também pode passar uma data em texto puro, desde que essa data esteja no formato apropriado:
var data = new Date('April 20, 1987 10:00:15'); document.write( data ); // Resultado: Mon Apr 20 1987 10:00:15 GMT-0300 (Hora oficial do Brasil)
A data "April 20, 1987 10:00:15", produz exatamente 20/04/1987 às 10:00:15. Você também pode omitir a hora se desejar:
var data = new Date('April 20, 1987'); document.write( data ); // Resultado: Mon Apr 20 1987 00:00:00 GMT-0300 (Hora oficial do Brasil)
Agora nossa hora foi configurada para 00:00:00, por omissão.
O padrão que eu mais utilizo é os números do ano, dia, mês (de 0 a 11), hora, minutos, segundos e milissegundos:
var data = new Date(2014, 3, 21, 10, 49, 00); document.write( data ); // Resultado: Mon Apr 21 2014 10:49:00 GMT-0300 (Hora oficial do Brasil)
Isso pode ser um pouco confuso para quem está iniciando, pois, os meses iniciando do zero (0), Abril, ao invés de 4, é 3.
Neste formato você também pode omitir as horas:
var data = new Date(2014, 3, 21); document.write( data ); // Resultado: Mon Apr 21 2014 00:00:00 GMT-0300 (Hora oficial do Brasil)
Métodos do Objeto date em Javascript
Depois que você tem uma instância do objeto date, você pode utilizar vários métodos para obter os valores dessa data. Por exemplo:
- getFullYear – Obtém o ano com 4 dígitos
- getHours – Obtém a hora
- getMilliseconds – Os milissegundos
- getMinutes – Os minutos
- getSeconds – Os segundos
- getMonth – O mês de 0 a 11 (o mês atual -1)
- getDay – O número do dia equivalente ao dia da semana. Zero para domingo, até 6 para sábado.
- getDate – O dia do mês
Exemplo:
var data = new Date(2014, 3, 21, 11, 02, 25); // Dia document.write( 'Dia: ' + data.getDate() + '<br>' ); // Mês document.write( 'Mês: ' + data.getMonth() + '<br>' ); // Ano document.write( 'Ano: ' + data.getFullYear() + '<br>' ); // Horas document.write( 'Horas: ' + data.getHours() + '<br>' ); // Minutos document.write( 'Minutos: ' + data.getMinutes() + '<br>' ); // Segundos document.write( 'Segundos: ' + data.getSeconds() + '<br>' );
Temos o resultado:
Dia: 21 Mês: 3 Ano: 2014 Horas: 11 Minutos: 2 Segundos: 25
A maioria dos métodos get contém métodos set equivalente, por exemplo, setSeconds, setYear e assim por diante. O único método que não tem um set equivalente, é o getDay.
Por exemplo:
var data = new Date(2014, 3, 21, 11, 02, 25); // Seta o ano de 2010 na data data.setFullYear(2010); // Dia document.write( 'Dia: ' + data.getDate() + '<br>' ); // Mês document.write( 'Mês: ' + data.getMonth() + '<br>' ); // Ano (Agora é 2010) document.write( 'Ano: ' + data.getFullYear() + '<br>' ); // Horas document.write( 'Horas: ' + data.getHours() + '<br>' ); // Minutos document.write( 'Minutos: ' + data.getMinutes() + '<br>' ); // Segundos document.write( 'Segundos: ' + data.getSeconds() + '<br>' );
Também existem métodos específicos para o Tempo Universal Coordenado (UTC):
- getUTCFullYear – Obtém o ano com 4 dígitos (UTC)
- getUTCHours – Obtém a hora (UTC)
- getUTCMilliseconds – Os milissegundos (UTC)
- getUTCMinutes – Os minutos (UTC)
- getUTCSeconds – Os segundos (UTC)
- getUTCMonth – O mês de 0 a 11 (o mês atual -1) – UTC
- getUTCDay – O número do dia equivalente ao dia da semana. Zero para domingo, até 6 para sábado. (UTC)
- getUTCDate – O dia do mês (UTC)
Outro método que pode ser interessante para sua aplicação, é o getTimezoneOffset(), que obtém a diferença em minutos do computador local para o UTC. No meu caso, estou em Minas Gerais, o valor retornado é 180.
var data = new Date(); document.write( data.getTimezoneOffset() ); // 180
Os métodos abaixo convertem a data para uma string formatada:
toString(): Retorna em uma string com o horário local.
var data = new Date(); document.write( data.toString() ); // Mon Apr 21 2014 11:21:15 GMT-0300 (Hora oficial do Brasil)
toGMTString(): Formata a string utilizando os padrões GMT.
var data = new Date(); document.write( data.toGMTString() ); // Mon, 21 Apr 2014 14:22:16 GMT
toLocaleDateString() e toLocaleTimeString(): Resultam na data e no horário, respectivamente, utilizando a data do computador local.
var data = new Date(); document.write( data.toLocaleDateString() + ' ' + data.toLocaleTimeString() ); // segunda-feira, 21 de abril de 2014 11:24:20
toLocaleString(): Retorna uma string com o formato da data local
var data = new Date(); document.write( data.toLocaleString() ); // segunda-feira, 21 de abril de 2014 11:25:24
toUTCString(): Formata a string usando os padrões UTC.
var data = new Date(); document.write( data.toUTCString() ); // Mon, 21 Apr 2014 14:26:14 GMT
Dependendo da versão do seu navegador, você também consegue obter o número de milissegundos desde 1 de janeiro de 1970 às 12:00 horas utilizando getTime():
var data = new Date(); document.write( data.getTime() ); // 1398090547039
Você também pode utilizar três métodos diretamente com o objeto date, são eles: UTC, parse e now:
document.write( Date.UTC(2014,3,21) + '<br>' ); // 1398038400000 document.write( Date.parse(2014,3,21) + '<br>' ); // 1398038400000 document.write( Date.now() + '<br>' ); // 1398090720495
Porém, como você pode perceber, o valor retornado é o número de milissegundos desde 1 de janeiro de 1970 às 12:00 horas até agora para (now) ou a data especificada em parse ou UTC.
Links úteis
Abaixo, alguns links úteis para completar seu conhecimento:
Outras aulas
Caso tenha perdido a aula anterior, segue o link:
Próxima aula:
Caso queira visualizar todas as aulas dessa sessão em ordem cronológica invertida: