#momentjs
#momentjs
Вопрос:
Я хочу установить дату для YYYYMMDD
того, что должно ссылаться на определенную дату utcOffset
. Но я не уверен, что было бы лучшим и элегантным способом установить эту дату после установки utcOffset
.
Закрытие, которое я могу получить, это следующее, но это не тот фактический результат, который я хочу. Мне нужен способ сначала установить смещение, а затем установить на YYYYMMDD
основе этого смещения.
moment.utc(ymdDate, 'YYYYMMDD').utcOffset(timeOffset)
Пример:
В случае, если у меня была такая дата, 20190420
которую необходимо использовать для объекта moment, который должен ссылаться на другой часовой пояс, и я делаю следующее, дата приведет к 19 апреля.
moment.utc(20190420, 'YYYYMMDD').utcOffset(-300).format()
Результат:
2019-04-19T19:00:00-05:00
Ожидаемый результат: 2019-04-20T00:00:00-05:00
Комментарии:
1. Я не мог полностью понять ваш вопрос, каков ваш ожидаемый результат? Может быть, вы можете поделиться выполняемым фрагментом с примерами значений
ymdDate
иtimeOffset
. Я не могу понять, ищете ли вы что-то вродеparseZone()
/utcOffset(timeOffset, true)
или у вас просто проблема с отображением.2. @VincenzoC только что добавил точный тест, чтобы вы могли его проверить. Спасибо!
Ответ №1:
Вы можете использовать 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>