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
Ответы
Ответ 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');