
Trabalhando com data e hora no JavaScript
Criando uma data a partir de um objeto date
let hoje = new Date();
console.log(hoje);
Observe o padrão da data criada pelo objeto date:
Tue Oct 30 2018 13:17:10 GMT-0400 (Amazon Standard Time)
Definindo uma data
O formato de definição de um objeto date é o seguinte:
new Date(ano, mês, dia, hora, minuto, segundo, milisegundo);
Caso seja necessário definir uma data podemos fazer da seguinte forma:
let pagamento = new Date(2018, 10, 3);
Obs.: O mês é contado a partir de 0, assim, o valor 10 refere-se a novembro.
O exemplo a seguir também definir uma data com horário:
let consulta = new Date(2018, 10, 3, 13, 30, 00);
Selecionando o ano de um objeto date
hoje.getDate();
Selecionando o mês de um objeto date
Em um objeto date os meses são numerados a partir de 0, sendo assim, para imprimir corretamente o mês é necessário somar 1, veja:
hoje.getMonth() + 1;
Selecionando o dia de um objeto date
hoje.getFullYear();
Imprimindo uma data no formato utilizado no Brasil:
No exemplo a seguir vamos selecionar dia, mês e ano de uma data e concotenar com ‘' para imprimir uma data no formato do Brasil:
let diaMesAno = hoje.getDate() + '/' + (hoje.getMonth() + 1) + '/' + hoje.getFullYear();
console.log(diaMesAno);
Selecionando a hora de um objeto date
hoje.getHours();
Selecionando o minuto de um objeto date
hoje.getMinutes();
Selecionando o segundo de um objeto date
hoje.getSeconds();
Imprimindo um horário
Neste exemplo vamos concatenar o horário de uma determinada consulta:
let horarioConsulta = consulta.getHours() + ':' + consulta.getMinutes() + ':' + consulta.getSeconds();
console.log(horarioConsulta);
Milisegundos
Também é possível selecionar uma data em milisegundos, contados a partir das 00:00:00 de 1 de janeiro de 1970:
hoje.getTime();
Criando um helper
Para facilitar a manipulação de objetos date podemos criar funções. A seguir alguns exemplos.
Uma função que recebe um texto, no formato DD/MM/YYYY definindo data, e retorna o objeto date:
function textoParaData(texto){
let data = texto.split('/');
return new Date(data[2], (data[1] - 1), data[0]);
}
textoParaData("28/10/2018");
Uma função que recebe um objeto date e retorna uma string formata como DD/MM/YYYY:
function dataParaTexto(data){
return data.getDate() + '/' + (data.getMonth() + 1) + '/' + data.getFullYear();
}
dataParaTexto(new Date());
Uma função que recebe um texto, no formato DD/MM/YYYY HH:MM:SS definindo data e horário, e retorna um objeto date:
function textoParaDataHora(texto){
let x = texto.split(' ');
let data = x[0].split('/');
let hora = x[1].split(':');
return new Date(data[2], (data[1] - 1), data[0], hora[0], hora[1], hora[2]);
}
textoParaDataHora("30/10/2018 13:30:00");
Uma função que recebe um objeto date e retorna um texto no formato DD/MM/YYYY HH:MM:SS:
function dataHoraParaTexto(data){
return data.getDate() + '/' + (data.getMonth() + 1) + '/' + data.getFullYear() + ' ' + data.getHours() + ':' + data.getMinutes() + ':' + data.getSeconds();
}
dataHoraParaTexto(new Date());
Uma função que recebe um objeto date e retorna somente o horário no formato HH:MM:SS:
function horaParaTexto(data){
return data.getHours() + ':' + data.getMinutes() + ':' + data.getSeconds();
}
horaParaTexto(new Date());