@WarriorKodeK

Как правильно конвертировать даты?

Всем привет.
У меня есть динамическая строка, например:
const dateString = `${formattedCurrentDate} ${timeSlot?.startTime}`; -> `2021-10-21 13:30`


Я проганяю её через new Date()
const currentTimeSlotDate = new Date(dateString);
В браузере, всё работает нормально, но я делаю это на бекенде, и в консоль мне выпрыгивает
console.log(currentTimeSlotDate); -> 2021-10-21T13:30:00.000Z


Если мы пойдём в браузер и введём console.log(new Date("2021-10-21T13:30:00.000Z")), то нам выдаст
Thu Oct 21 2021 16:30:00 GMT+0300 (Eastern European Summer Time)


А нужно
Thu Oct 21 2021 13:30:00 GMT+0300 (Eastern European Summer Time)
  • Вопрос задан
  • 592 просмотра
Решения вопроса 2
Seasle
@Seasle Куратор тега JavaScript
Ответ написан
Комментировать
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
ты забыл про часовые пояса. на бекенде и на клиенте они могут быть разными. причем на клиенте у каждого человека в разном часовом поясе они будут разные.
поэтому к примеру на бекенде делай дату с нужным тебе часовым поясом. это место, где написано .000Z - это означает время по UTC.
к примеру для мск ставишь нужное тебе время и пишешь в конце +03:00
console.log(new Date("2021-10-21T13:30:00+03:00"))
ну и как выше сказал - в зависимости от часового пояса в браузере оно будет конвертиться в часовой пояс браузера. но время будет правильным. таким как ты на бекенде его настроил
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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