ti-enxame.com

Qual é a melhor maneira de determinar se uma data está hoje em JavaScript?

Eu tenho um objeto de data em JavaScript e quero descobrir se essa data é hoje. Qual é a maneira mais rápida de fazer isso?

Minha preocupação era comparar o objeto de data, pois um pode ter um horário diferente do outro, mas a qualquer momento na data de hoje deve retornar true.

26
leora

Você poderia usar toDateString:

var d = new Date()
var bool = (d.toDateString() === otherDate.toDateString());
72
Joseph Marikle

As respostas baseadas em toDateString() funcionarão, eu acho, mas eu pessoalmente as evitaria, pois elas basicamente fazem a pergunta errada.

Aqui está uma implementação simples:

function areSameDate(d1, d2) {
    return d1.getFullYear() == d2.getFullYear()
        && d1.getMonth() == d2.getMonth()
        && d1.getDate() == d2.getDate();
}

MDN possui uma visão geral decente da API do objeto JS Date se isso não for exatamente o que você precisa.

9
recf
var someDate = new Date("6 Dec 2011").toDateString();
var today = new Date().toDateString();
var datesAreSame = (today === someDate);
4
Chris Fulstow

Se os dois forem objetos Date (), você poderá usá-lo para 'formatar' a data de uma maneira que ela será comparada apenas no ano/mês/dia: if(inputDate.setHours(0,0,0,0) == todaysDate.setHours(0,0,0,0));

Pergunta quase idêntica: Como verificar se a data de entrada é igual à data de hoje?

2
AvatarKava

Eu prefiro usar moment lib

moment('dd/mm/yyyy').isSame(Date.now(), 'day');
1
Aleksandr Golovatyi