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/