Подтвердить что ты не робот

Moment.Js: Даты смещения с использованием UTC и смещения временной зоны

Я пытаюсь настроить время, используя смещение часового пояса и временную метку UTC.

Я запускаю следующий код:

var date = {
    utc: '2013-10-16T21:31:51',
    offset: -480
}

var returnDate = moment(date.utc).utc().zone(date.offset).format('MM/DD/YYYY h:mm A');

Я ожидаю: 10/16/2013 1:31 PM, но я заканчиваю 10/17/2013 9:31 AM

4b9b3361

Ответ 1

Вот что сработало для меня:

var date = {
  utc: '2013-10-16T21:31:51',
  offset: 480
}

var returnDate = moment.utc(date.utc).zone(date.offset).format('MM/DD/YYYY h:mm A');

Если вы заметили, я изменил смещение на положительное число. Это дало желаемый результат. Если смещение осталось на -480, выход был 10/17/2013 5:31 AM.

Существует метод момент # UTC, который инициализирует дату как UTC по сравнению с местным временем.

Ответ 2

Я использую библиотеку jsTimezoneDetect, чтобы определить имя часового пояса вместо смещения.

Затем используйте это в метке времени UTC:

timestamp = moment.tz(timestamp, tz.name());
timestamp.format('MM/DD/YYYY h:mm A');