Каков наилучший способ определить, есть ли сегодня дата в JavaScript? - PullRequest
18 голосов
/ 06 декабря 2011

У меня есть объект даты в JavaScript, и я хочу выяснить, сегодня ли эта дата.Какой самый быстрый способ сделать это?

Меня беспокоило сравнение объекта даты, поскольку у одного может быть время, отличное от другого, но в любое время на сегодняшней дате должно возвращаться true.

Ответы [ 5 ]

59 голосов
/ 06 декабря 2011

Вы можете использовать toDateString:

var d = new Date()
var bool = (d.toDateString() === otherDate.toDateString());
8 голосов
/ 06 декабря 2011

Ответы, основанные на toDateString(), будут работать, я думаю, но я бы лично их избегал, поскольку они в основном задают неправильный вопрос.

Вот простая реализация:

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

MDN имеет хороший обзор API объекта JS Date, если это не совсем то, что вам нужно.

3 голосов
/ 06 декабря 2011
var someDate = new Date("6 Dec 2011").toDateString();
var today = new Date().toDateString();
var datesAreSame = (today === someDate);
2 голосов
/ 06 декабря 2011

Если оба являются объектами Date (), вы можете использовать это для «форматирования» даты таким образом, чтобы она сравнивалась только по году / месяцу / дню: if(inputDate.setHours(0,0,0,0) == todaysDate.setHours(0,0,0,0));

Почти идентичный вопрос: Как проверить, совпадает ли введенная дата с сегодняшней?

1 голос
/ 04 апреля 2019

Я предпочитаю использовать момент lib

moment('dd/mm/yyyy').isSame(Date.now(), 'day');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...