Примечание moment(date).offsetUtc()
возвращает разницу во времени в минутах между временем и UTC браузера на дату, переданного в качестве аргумента. Один НЕ должны установить эту разницу в глобальном масштабе и использовать его для всех дат, если они находятся в зоне перехода на летнее:
// this is WRONG in daylight saving zones. don't do this!
const OFFSET_UTC = moment().offsetUtc();
выше будет применять текущую разницу во все сроки вы работаете, и если вы находитесь в летняя зона, ваши даты будут отключены на один час, если они находятся в другой половине года.
Небольшая функция, которую я написал, чтобы разобрать разницу во времени в переходе на летнее зон правильно:
function toUtcMoment(date) {
return moment(date).add(moment(date).offsetUtc(), 'minutes').utc()
}
Вы можете использовать выше, чтобы правильно передать даты от datepickers (которые всегда в браузере часовой пояс) в приложение, которое использует часовой пояс UTC.
Это возвращает * текущий * часовой пояс * смещение *. Не часовой пояс. Смещение может измениться, основываясь на таких вещах, как переход на летнее время. См. «Часовой пояс! = Смещение» в [вики wiki часового пояса] (http://stackoverflow.com/tags/timezone/info) –
@ Ответ MattJohnson - это верный ответ на этот вопрос. Технически этот ответ неверен, поскольку он связан с корреляцией, а не связан с часовым поясом (разные понятия). – dudewad