Эта документация упоминается moment.ISO_8601
как опция форматирования (от 2.7.0 - http://momentjs.com/docs/#/parsing/special-formats/ ), но ни одна из этих работ (даже 2.7.0):
var date = moment();
date.format(moment.ISO_8601); // error
moment.format(date, moment.ISO_8601); // error
( http://jsfiddle.net/b3d6uy05/1/ )
Как я могу получить ISO 8601 из moment.js?
javascript
momentjs
date-formatting
iso8601
Сеннетт
источник
источник
moment().toISOString()
Ответы:
http://momentjs.com/docs/#/displaying/as-iso-string/
Обновление На основании ответа: @sennet и комментария @dvlsg (см. Fiddle ) следует отметить, что существует разница между
format
иtoISOString
. Оба являются правильными, но основной процесс отличается.toISOString
преобразуется в объект Date, устанавливает UTC, затем использует собственную функцию-прототип Date для вывода ISO8601 в UTC с помощью миллисекунд (YYYY-MM-DD[T]HH:mm:ss.SSS[Z]
). С другой стороны,format
использует формат по умолчанию (YYYY-MM-DDTHH:mm:ssZ
) без миллисекунд и поддерживает смещение часового пояса.Я открыл проблему, так как думаю, что это может привести к неожиданным результатам.
источник
moment().utc().format("OUTPUT_FORMAT")
moment().toISOString(true);
.Использовать
format
без параметров:( http://jsfiddle.net/8gvhL1dz/ )
источник
date.toISOString()
будет хранить миллисекунды и использовать utc,date.format()
сбрасывать миллисекунды и использовать ваш местный часовой пояс (или, по крайней мере, именно такое поведение я сейчас наблюдаю в chrome - jsfiddle.net/8gvhL1dz/22 )Также возможно с ванильным JS
источник
Когда вы используете Mongoose для хранения дат в MongoDB, вам нужно использовать toISOString (), потому что все даты хранятся в виде ISO-дат с миллисекундами.
источник
Если вам нужна только часть даты (например, 2017-06-27), и вы хотите, чтобы она работала независимо от часового пояса, а также на арабском языке, вот код, который я написал:
источник
источник