Objeto Date
O objeto Date
é uma construção em JavaScript projetada para facilitar a manipulação de datas. No JavaScript, as datas são representadas como o número de milissegundos desde o marco “zero” da Época Unix (1º de Janeiro de 1970 às 00:00:00 UTC). Este ponto no tempo é conhecido como Timestamp Unix.
Exemplos
Criar uma data com o horário atual
const dataAtual = new Date();
console.log(dataAtual.toString());
// Saída: Tue Dec 14 2021 12:58:54 GMT-0300 (Horário Padrão de Brasília)
Timestamp Unix
const dataEpoch = new Date(0);
console.log(dataEpoch.toString());
// Saída: Wed Dec 31 1969 21:00:00 GMT-0300 (Horário Padrão de Brasília)
Devido ao fuso horário (GMT -3), new Date(0)
não marca o dia 1º de Janeiro de 1970. Para corrigir isso, podemos adicionar três horas (em milissegundos) ao Timestamp Unix.
const tresHoras = 3 * 60 * 60 * 1000;
const dataEpochCorrigida = new Date(0 + tresHoras);
console.log(dataEpochCorrigida.toString());
// Saída: Thu Jan 01 1970 00:00:00 GMT-0300 (Horário Padrão de Brasília)
Criar uma data a partir de uma data específica
Podemos criar uma data específica fornecendo parâmetros ano, mês, dia, hora, minuto, segundo e milissegundo.
const dataEspecifica = new Date(2019, 3, 20, 15, 14, 27);
console.log(dataEspecifica.toString());
Também é possível criar uma data a partir de uma string no formato ISO8601 ou RFC 2822.
const dataString = new Date("2019-04-20T20:20:59.100");
console.log(dataString.toString());
Obter elementos individuais de uma data
Podemos obter cada elemento individual de uma data, como dia, mês, ano, hora, minuto, segundo, milissegundo e dia da semana.
const dataExemplo = new Date("2019-04-20T20:20:59.100");
console.log("Dia: ", dataExemplo.getDate());
console.log("Mês: ", dataExemplo.getMonth());
console.log("Ano: ", dataExemplo.getFullYear());
console.log("Hora: ", dataExemplo.getHours());
console.log("Minuto: ", dataExemplo.getMinutes());
console.log("Segundo: ", dataExemplo.getSeconds());
console.log("Milissegundo: ", dataExemplo.getMilliseconds());
console.log("Dia da Semana: ", dataExemplo.getDay());
Lembre-se de que a contagem de meses começa em 0 (janeiro é 0, fevereiro é 1, etc.) e a contagem de dias da semana também começa em 0 (domingo é 0, segunda-feira é 1, etc.).