JavaScript:
Сравнение двух дат
Как это сделать:
Объекты Date
в JavaScript очень пригодятся. Когда вы их сравниваете, они преобразуются в миллисекунды, начиная с 1 января 1970 года, по UTC.
let date1 = new Date('2021-07-24');
let date2 = new Date('2021-07-25');
console.log(date1 < date2); // true
console.log(date1 > date2); // false
console.log(date1.getTime() === date2.getTime()); // false
Пример вывода:
true
false
false
Углубляемся
Внутри, объекты Date
— это просто миллисекунды. Ранее программистам приходилось вручную управлять операциями с датами, рассчитывая прошедшее время от какой-то точки отсчета, часто рискуя допустить ошибки. Сравнение объектов Date
упрощает жизнь, хотя и не является полностью защищенным от ошибок, особенно при работе с часовыми поясами и переходом на летнее время.
Альтернативы? Конечно. Библиотеки, такие как moment.js
или date-fns
, помогают управлять сложными сценариями и предлагают дополнительные удобства для манипулирования датами.
Важно помнить, что прямое сравнение объектов Date
(с использованием ==
) сравнивает ссылки, а не значения. Используйте getTime()
для точного сравнения значений. И будьте осторожны с часовыми поясами при разборе дат; легко запутаться, если быть невнимательным.
Смотрите также
- Документация MDN по Date: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
- Библиотека Moment.js: https://momentjs.com/
- Библиотека date-fns: https://date-fns.org/