Objeto Date. Lidando com Datas - JavaScript
O objeto Date
Criando Datas
Existem várias maneiras de criar um objeto Date
Usando o construtor vazio
sem parâmetros. Neste caso, o objeto criado armazena a data e hora atuais:Date
const currentDate = new Date(); console.log(currentDate); // Thu Oct 26 2023 13:17:53 GMT+0100
Passando a quantidade de milissegundos desde o início da era Unix, ou seja, desde 1º de janeiro de 1970 às 00:00:00 GMT:
const myDate = new Date(1359270000000); console.log(myDate); // Sun Jan 27 2013 11:00:00 GMT+0400 (Moscou, horário padrão)
Inserindo dia, mês e ano diretamente:
const date1 = new Date("27 March 2008"); console.log(date1); // Thu Mar 27 2008 00:00:00 GMT+0300 (Moscou, horário padrão)
Ou assim:
const date2 = new Date("3/27/2008"); console.log(date2); // Thu Mar 27 2008 00:00:00 GMT+0300 (Moscou, horário padrão)
Mais uma forma:
const date3 = new Date("3 27 2008"); console.log(date3); // Thu Mar 27 2008 00:00:00 GMT+0300 (Moscou, horário padrão)
O quarto método envolve passar todos os parâmetros de data e tempo no construtor
:Date
const myDate = new Date(2012, 11, 25, 18, 30, 20, 10); console.log(myDate); // Tue Dec 25 2012 18:30:20 GMT+0400 (Moscou, horário padrão)
Aqui, os parâmetros são, respectivamente: ano, mês, dia, horas, minutos, segundos e milissegundos.
O mês é numerado de 0 a 11, onde 0 é janeiro e 11 é dezembro.
Obtendo Data e Hora
Para acessar diferentes componentes da data, uma série de métodos é utilizada:
: Retorna o dia do mês.getDate()
: Retorna o dia da semana (começando por 0 para domingo até 6 para sábado).getDay()
: Retorna o número do mês (começando por 0, então o mês 0 é janeiro).getMonth()
: Retorna o ano.getFullYear()
: Retorna a data completa em forma de string.toDateString()
: Retorna a hora (de 0 a 23).getHours()
: Retorna os minutos (de 0 a 59).getMinutes()
: Retorna os segundos (de 0 a 59).getSeconds()
: Retorna os milissegundos (de 0 a 999).getMilliseconds()
: Retorna o tempo completo em forma de string.toTimeString()
Vamos pegar a data atual com o seguinte código:
const today = new Date();
console.log(today.getDate()); // 26
console.log(today.getDay()); // 4
console.log(today.getMonth()); // 9
console.log(today.getFullYear()); // 2023
Para converter os valores numéricos em nomes mais familiares para os dias da semana e meses, usamos arrays:
const days = ["Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"];
const months = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho",
"Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"];
const today = new Date();
console.log(`Hoje: ${today.getDate()} de ${months[today.getMonth()]} de ${today.getFullYear()}, ${days[today.getDay()]}`);
// Hoje: 26 de Outubro de 2023, Quinta-feira
Agora, vamos pegar horário atual:
var welcome;
const myDate = new Date();
const hour = myDate.getHours();
const minute = myDate.getMinutes();
const second = myDate.getSeconds();
console.log(`Horário atual: ${hour}:${minute}:${second}`); // Horário atual: 13:38:26
Configurando Data e Hora
Além de definir parâmetros de data no construtor, também podemos usar métodos adicionais do objeto Date
: Configura o dia na data.setDate()
: Configura o mês (começando por 0, ou seja, o mês 0 é janeiro).setMonth()
: Configura o ano.setFullYear()
: Configura a hora.setHours()
: Configura os minutos.setMinutes()
: Configura os segundos.setSeconds()
: Configura os milissegundos.setMilliseconds()
Vamos configurar uma data específica:
const myDate = new Date();
myDate.setDate(14);
myDate.setMonth(10); // Novembro
myDate.setFullYear(2023);
console.log(myDate); // Ter, 14 de Novembro de 2023 13:41:20 GMT+0300 (Hora padrão de Moscou)
Ao configurar valores, podemos passar um valor maior que o máximo permitido. Por exemplo, configurar a hora para 54:
myDate.setHours(54);
Neste caso, o valor da hora será ajustado para 54 - 24 * 2 = 6, e as horas excedentes somam dois dias ao calendário (24 * 2 horas), adicionando dois dias à data. O mesmo princípio se aplica a dias, minutos, segundos e milissegundos.