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

moment("2020-10-28T08:41:00.000Z").format("YYYY-MM-DD HH:mm") // Result: 2020-10-28 09:41

Но мне нужно получить значение этой строковой даты без зоны, поэтому я вырезал часть 000Z:

moment("2020-10-28T08:41:00").format("YYYY-MM-DD HH:mm") // Result: 2020-10-28 08:41

И это настоящая ценность, которая мне нужна.
Я пытаюсь получить более элегантный способ сделать это преобразование из строки в дату без преобразования функции в cutOffZone()?

1
1110 11 Фев 2021 в 16:35

2 ответа

Лучший ответ

Если вы используете конструктор moment.utc (), он будет используйте режим utc, поэтому время не будет преобразовано в местное время. С момента документации:

moment.utc (...) - это режим utc. Предполагается, что неоднозначный ввод - это UTC. Однозначный ввод настроен на UTC.

// Use moment.utc() constructor...
const dt = new moment.utc("2020-10-28T08:41:00.000Z").format("YYYY-MM-DD HH:mm");
console.log(dt)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
2
Terry Lennox 11 Фев 2021 в 15:06

Если вам просто нужны манипуляции со строками:

"2020-10-28T08:41:00.000Z".split(".")[0]
1
Makaze 11 Фев 2021 в 13:38
66155800