Если вы изменили часовой пояс на (UTC-07: 00) Mountain Time и запустили код ниже, вы можете увидеть проблему, о которой я говорю.Дата форматирования в указанном часовом поясе с использованием Moment Timezone
var a = moment('2009-11-01T06:00:00Z').tz('US/Mountain').format();
var b = moment('2009-11-01T06:00:00Z').tz('US/Mountain').format('YYYY-MM-DD HH:mm');
var c = moment('2009-10-31T23:00:00-07:00').format('YYYY-MM-DD HH:mm');
document.getElementById("a").innerHTML = "#1: " + a;
document.getElementById("b").innerHTML = "#2: " + b;
document.getElementById("c").innerHTML = "#3: " + c;
<script src="http://momentjs.com/downloads/moment.min.js"></script>
<script src="http://momentjs.com/downloads/moment-timezone-with-data-2010-2020.min.js"></script>
<div id="a"></div>
<div id="b"></div>
<div id="c"></div>
Дата смещения производится путем запуска кода (# 1) выше, является правильным. Однако не следует форматировать его значение «2009-11-01 00:00» (№ 3) вместо «2009-10-31 23:00» (№ 2)?
Похоже, что форматировщик просто удаляет смещение вместо того, чтобы принимать во внимание при создании форматированной даты. Является ли это ошибкой, или я делаю что-то неправильно здесь?
Предположительно на горы времени вы имеете в виду GMT-07: 00. Хотя синтаксический анализ строк конструктором Date не рекомендуется, большинство из них будет правильно разбирать эту строку (но некоторые из них не будут). В любом случае, кажется, ваша система настроена на GMT-06: 00, поэтому, когда вы печатаете дату, по умолчанию используется локальный (хост-система) часовой пояс, который на один час позже ввода. – RobG