Странный объект даты в JS
Большую часть времени нам не нужно смотреть на мельчайшие детали объекта Date Javascript, но иногда это может привести к нечеткой ошибке в вашем коде. Давайте посмотрим на проблему.
Итак, что такое объект даты JavaScript?
Объект даты JavaScript — это количество миллисекунд, прошедших с полуночи 1 января 1970 года, 00:00:00 UTC.
Проблема
console.log(new Date("2023-01-24"));
console.log(new Date("2023-01-24 "));
Что? Javascript ужасно противоречив.
Добавление только пробела в конце строки дает правильный результат .
Еще один странный
console.log(new Date("2023/01/24"));
Однако, если мы изменим формат строки на месяц-день-год
console.log(new Date("01-24-2023"));
Теперь результат правильный ✔.
Итак, в чем проблема?
Проблема именно с часовым поясом. Обратите внимание GMT-0500- это на 5 часов меньше, чем по Гринвичу. Если я добавлю 5 часов к отображаемой дате/времени, я получу ровно полночь 2023/01/24.
На данный момент нам не нужна временная часть, поэтому оставьте остальную часть обсуждения на следующий раз.
Еда на вынос
В этой статье не рассматриваются все детали, но я уверен, что в будущем вы будете тщательно создавать объект Date. Будьте осторожны при использовании сторонних библиотек Date Time, таких как Moment Js, Day Js и т. д.
Также возможно, что некоторые вычисления или манипуляции, выполненные с использованием объекта даты, могут привести к неправильной дате, если они будут выполнены неправильно. Например, объект Date ведет себя неодинаково в разных браузерах. Поэтому важно перепроверить вычисления даты и убедиться, что объект даты инициализирован и используется правильно.
Вы можете поддержать меня через
Хлопать
Комментирование
Поделиться этим постом с друзьями

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































