Сравнение дат в JavaScript
Объекты Date можно сравнивать обычными операторами <, >, <= и >=. При сравнении JavaScript использует время в миллисекундах.
Раньше или позже
Проверим, какая из двух дат наступит раньше.
const start = new Date(2026, 6, 12);
const end = new Date(2026, 6, 15);
console.log(start < end); // true
console.log(end > start); // true
Так же можно проверить, не прошел ли срок.
const deadline = new Date(2026, 6, 12, 18, 0);
if (new Date() > deadline) {
console.log('Срок прошел');
}
Один момент времени
Две даты с одинаковыми значениями все равно являются разными объектами. Поэтому оператор === не подходит для проверки одного момента времени.
const first = new Date(2026, 6, 12, 9, 0);
const second = new Date(2026, 6, 12, 9, 0);
console.log(first === second); // false
Для такой проверки получите timestamp методом getTime().
console.log(first.getTime() === second.getTime()); // true
Один календарный день
Иногда время не важно: нужно узнать, относятся ли две даты к одному дню. В этом случае сравнивают год, месяц и день месяца.
function isSameDay(first, second) {
return first.getFullYear() === second.getFullYear()
&& first.getMonth() === second.getMonth()
&& first.getDate() === second.getDate();
}
const first = new Date(2026, 6, 12, 9, 0);
const second = new Date(2026, 6, 12, 20, 30);
console.log(isSameDay(first, second)); // true
Методы getFullYear(), getMonth() и getDate() используют часовой пояс компьютера. Если даты нужно сравнивать по UTC, используйте методы с приставкой UTC.