Как получить смещение часового пояса для определенного часового пояса? ⇐ Javascript
-
Гость
Как получить смещение часового пояса для определенного часового пояса?
Мне нужно отсортировать города по часовому поясу (как идентификаторы TZ). Для этого самым естественным способом, который я нашел, было сравнить смещение этих часовых поясов с UTC (но я открыт для любого решения).
Date.prototype.getTimezoneOffset() показался мне идеальным кандидатом, я взял пример из документации:
const myDate = new Date('19 августа 1975 г. 23:15:30 GMT+07:00') console.log(myDate.getTimezoneOffset())
Комментарий к примеру гласит
// Ожидаемый результат: смещение вашего местного часового пояса в минутах
// (например, -120). НЕ смещение часового пояса объекта даты.
Я пытаюсь это обработать, но просто не понимаю, что такое Date.prototype.getTimezoneOffset(), если он всегда возвращает локальное смещение в UTS, независимо от дата, к которой оно применяется.
Если вышеизложенное верно (что кажется очень странным, учитывая, что getTimezoneOffset() применяется к объекту даты), как я могу получить смещение UTC объекта даты?
В конечном итоге я буду использовать Day.js для управления датами, поэтому окончательный код, который, как я ожидал, будет работать (но он не соответствует приведенному выше), был
console.log(dayjs().tz('Америка/Лос_Анжелес').toDate().getTimezoneOffset())
Мне нужно отсортировать города по часовому поясу (как идентификаторы TZ). Для этого самым естественным способом, который я нашел, было сравнить смещение этих часовых поясов с UTC (но я открыт для любого решения).
Date.prototype.getTimezoneOffset() показался мне идеальным кандидатом, я взял пример из документации:
const myDate = new Date('19 августа 1975 г. 23:15:30 GMT+07:00') console.log(myDate.getTimezoneOffset())
Комментарий к примеру гласит
// Ожидаемый результат: смещение вашего местного часового пояса в минутах
// (например, -120). НЕ смещение часового пояса объекта даты.
Я пытаюсь это обработать, но просто не понимаю, что такое Date.prototype.getTimezoneOffset(), если он всегда возвращает локальное смещение в UTS, независимо от дата, к которой оно применяется.
Если вышеизложенное верно (что кажется очень странным, учитывая, что getTimezoneOffset() применяется к объекту даты), как я могу получить смещение UTC объекта даты?
В конечном итоге я буду использовать Day.js для управления датами, поэтому окончательный код, который, как я ожидал, будет работать (но он не соответствует приведенному выше), был
console.log(dayjs().tz('Америка/Лос_Анжелес').toDate().getTimezoneOffset())
Мобильная версия