@YakutD

Почему JS меняет дату?

Я получаю из формы дату строкой в виде:
Потом я создаю из этой строки объект Date. Когда я дебажу то вижу что дата становится 30 декабря
61aa1da41d811779739254.png
Вот код:
let date = "2021-12-31"
date.setHours(0,0,0,0);
console.log(date);
date = new Date(date);
console.log(date);

Почему так происходит? Может это быть из за date.setHours? И если да, то почему время на скрине не обнулилось?
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 2
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Дата не меняется, просто Вы оперируете датой в текущем часовом поясе (Московское время), а в консоль логируется в формате UTCString, а в UTC всегда используется время по Лондону.

Ну и у строки нет метода setHours, нужно сначала создавать объект Date и уже на нем вызывать этот метод. Хотя для даты сделаной из такой строки этот вызов бессмысленный, так как устанавливаемые параметры и так будут 0
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Потому что часовые пояса
2021-12-31T00:00:00+03:00 === 2021-12-30T21:00:00Z
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы