@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)
  • Вопрос задан
  • 871 просмотр
Решения вопроса 2
Seasle
@Seasle Куратор тега JavaScript
Ответ написан
Комментировать
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
ты забыл про часовые пояса. на бекенде и на клиенте они могут быть разными. причем на клиенте у каждого человека в разном часовом поясе они будут разные.
поэтому к примеру на бекенде делай дату с нужным тебе часовым поясом. это место, где написано .000Z - это означает время по UTC.
к примеру для мск ставишь нужное тебе время и пишешь в конце +03:00
console.log(new Date("2021-10-21T13:30:00+03:00"))
ну и как выше сказал - в зависимости от часового пояса в браузере оно будет конвертиться в часовой пояс браузера. но время будет правильным. таким как ты на бекенде его настроил
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы