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.).

Referências