Trabalhando com o Objeto Date em JavaScript
O objeto Date permite manipular datas e horas em JavaScript.
Criando Datas
Existem várias maneiras de criar um objeto Date:
Usando o construtor vazio
Datesem parâmetros. Neste caso, o objeto criado armazena a data e hora atuais:const currentDate = new Date(); console.log(currentDate); // Thu Oct 26 2023 13:17:53 GMT+0100Passando 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:
getDate(): Retorna o dia do mês.getDay(): Retorna o dia da semana (começando por 0 para domingo até 6 para sábado).getMonth(): Retorna o número do mês (começando por 0, então o mês 0 é janeiro).getFullYear(): Retorna o ano.toDateString(): Retorna a data completa em forma de string.getHours(): Retorna a hora (de 0 a 23).getMinutes(): Retorna os minutos (de 0 a 59).getSeconds(): Retorna os segundos (de 0 a 59).getMilliseconds(): Retorna os milissegundos (de 0 a 999).toTimeString(): Retorna o tempo completo em forma de string.
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()); // 2023Para 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-feiraAgora, 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:26Configurando Data e Hora
Além de definir parâmetros de data no construtor, também podemos usar métodos adicionais do objeto Date para configurações específicas:
setDate(): Configura o dia na data.setMonth(): Configura o mês (começando por 0, ou seja, o mês 0 é janeiro).setFullYear(): Configura o ano.setHours(): Configura a hora.setMinutes(): Configura os minutos.setSeconds(): Configura os segundos.setMilliseconds(): Configura os milissegundos.
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.