Установить дату момента после установки utcOffset - PullRequest
0 голосов
/ 18 апреля 2019

Я хочу установить дату на YYYYMMDD, которая должна ссылаться на дату на конкретном utcOffset. Но я не уверен, что будет лучшим и элегантным способом установить эту дату после установки utcOffset.

Закрытие, которое я могу получить, заключается в следующем, но это не фактический результат, который я хочу. Мне нужен способ сначала установить смещение, а затем установить YYYYMMDD на основе этого смещения.

moment.utc(ymdDate, 'YYYYMMDD').utcOffset(timeOffset)

Пример :

В случае, если у меня была дата, подобная 20190420, которая должна использоваться для мгновенного объекта, который должен относиться к другому часовому поясу, и я делаю следующее, дата будет получена 19 апреля.

moment.utc(20190420, 'YYYYMMDD').utcOffset(-300).format()

Результат : 2019-04-19T19:00:00-05:00

Ожидаемый результат : 2019-04-20T00:00:00-05:00

1 Ответ

1 голос
/ 20 апреля 2019

Вы можете использовать utcOffset, передавая true в качестве второго параметра

Функция utcOffset имеет дополнительный второй параметр, который принимает логическое значение, указывающее, следует ли сохранятьтекущее время дня.

  • Проходное время false (по умолчанию) сохранит тот же момент в универсальном времени, но местное время изменится.

  • При прохождении true будет сохраняться то же местное время, но за счет выбора другой точки в универсальном времени.

Вот живой пример:

console.log( moment.utc(20190420, 'YYYYMMDD').utcOffset(-300, true).format() );
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
...