дата JavaScript - сохранить смещение часового пояса - PullRequest
6 голосов
/ 16 января 2012

У меня есть дата ISO8601, которая содержит смещение часового пояса (см. Ниже). Когда я создаю объект Date из этого, объект date конвертируется в мой часовой пояс (в настоящее время GMT), а смещение часового пояса становится равным 0. Есть ли способ получить конструктор Date () для сохранения смещения часового пояса?

  var date = new Date("2012-01-17T12:55:00.000+01:00");
  console.log(date.toString());

Вывод, который я получаю:

"Tue Jan 17 2012 11:55:00 GMT+0000 (GMT)"

Вывод, который я хочу получить:

"Tue Jan 17 2012 12:55:00"

1 Ответ

9 голосов
/ 16 января 2012

Не со встроенным Date объектом , поскольку они знают только Локальный (как определено браузером пользователя и / или Настройки ОС) и UTC . Это можно увидеть из множества клонированных методов, которые есть в классе (например, getHours / getUTCHours).

getTimezoneOffset - единственная информация о часовом поясе, которая у вас есть на самом деле, но она также локальная и, вероятно, только снова даст вам +0 (или +6 в моем случае) :

var date = new Date("2012-01-17T12:55:00.000+01:00");
console.log(date.getTimezoneOffset() / 60.0);

Вы можете попробовать timezone-js (или одну из его вилок ), но вам нужно знать имя часового пояса Олсона , а не только GMT / UTC смещение:

var date = new new timezoneJS.Date('2012-01-17T12:55:00.000+01:00', 'Europe/Brussels');
alert(date.getTimezoneOffset() / 60.0); // +1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...