#javascript #momentjs
#javascript #momentjs
Вопрос:
Почему moment("2020-08-26T00:00:00Z").format('DD.MM.YYYY HH:mm:ss Z')
выдает «26.08.2020 03:00:00 03:00″. Я понимаю добавление текущего часового пояса, но почему время тоже меняется?
Ответ №1:
В формате ISO 8601 «Z» в конце обозначает часовой пояс UTC 0. 2020-08-26T00:00:00Z
поэтому означает то же самое, что и 2020-08-26T00:00:00 00:00
.
Если вы хотите использовать другой часовой пояс в конструкторе, укажите его явно:
moment('2020-08-26T00:00:00 03:00').format('DD.MM.YYYY HH:mm:ss Z')
// ^^^^^^
// if the user agent's timezone is UTC 3,
// this will be formatted as "26.08.2020 00:00:00 03:00"
Если, с другой стороны, вы хотите создать дату-время UTC 0 и отформатировать его в UTC 0, игнорируя часовой пояс пользовательского агента, используйте это (согласно вашему комментарию):
moment("2020-08-26T00:00:00Z").utc().format("DD.MM.YYYY HH:mm:ss Z")
// ^^^^^^
// this will _always_ be formatted as "26.08.2020 00:00:00 00:00"
Комментарии:
1. Итак, проблема в неправильном формате.. Спасибо!
moment("2020-08-26T00:00:00Z").utc().format("DD.MM.YYYY HH:mm:ss Z")
решил это. (Я получаю дату из серверной части в этом формате)2. Ваш ответ ориентирован на часовой пояс, но меня смутили неправильные часы. Ты все равно мне помог
3. @Kseniia Я думаю, что, возможно, я неправильно понял вопрос. Я отредактировал ответ, чтобы включить ваше решение.