У меня есть веб-страница с тремя выпадающими списками для дня, месяца и года. Если я использую конструктор JavaScript Date
, который принимает числа, то я получаю объект Date
для моего текущего часового пояса:
new Date(xiYear, xiMonth, xiDate)
Дайте правильную дату, но она думает, что это время по Гринвичу + 01: 00 из-за перехода на летнее время.
Проблема здесь в том, что я затем передаю это Date
методу Ajax, и когда дата десериализируется на сервере, она конвертируется в GMT и теряет час, который переводит день назад на единицу.
Теперь я могу просто передать день, месяц и год по отдельности в метод Ajax, но, похоже, должен быть лучший способ.
Принятый ответ указал мне правильное направление, однако само использование setUTCHours()
само по себе изменилось:
Apr 5th 00:00 GMT+01:00
до
Apr 4th 23:00 GMT+01:00
Затем я также должен был установить дату UTC, месяц и год, чтобы в итоге получить
Apr 5th 01:00 GMT+01:00
что я и хотел.