Estos documentos mencionan moment.ISO_8601como una opción de formato (de 2.7.0 - http://momentjs.com/docs/#/parsing/special-formats/ ), pero ninguno de estos funciona (incluso 2.7.0):
var date = moment();
date.format(moment.ISO_8601); // error
moment.format(date, moment.ISO_8601); // error
( http://jsfiddle.net/b3d6uy05/1/ )
¿Cómo puedo obtener un ISO 8601 de moment.js?
javascript
momentjs
date-formatting
iso8601
sennett
fuente
fuente

moment().toISOString()Respuestas:
http://momentjs.com/docs/#/displaying/as-iso-string/
Actualización Basado en la respuesta: por @sennet y el comentario de @dvlsg (ver Fiddle ) hay que señalar que hay una diferencia entre
formatytoISOString. Ambos son correctos pero el proceso subyacente difiere.toISOStringse convierte en un objeto Date, se establece en UTC y luego usa la función de prototipo Date nativa para generar ISO8601 en UTC con milisegundos (YYYY-MM-DD[T]HH:mm:ss.SSS[Z]). Por otro lado,formatusa el formato predeterminado (YYYY-MM-DDTHH:mm:ssZ) sin milisegundos y mantiene el desplazamiento de la zona horaria.Abrí un problema porque creo que puede conducir a resultados inesperados.
fuente
moment().utc().format("OUTPUT_FORMAT")moment().toISOString(true);.Usar
formatsin parámetros:( http://jsfiddle.net/8gvhL1dz/ )
fuente
date.toISOString()mantendrá los milisegundos y usará utc, soltarádate.format()los milisegundos y usará su zona horaria local (o al menos, ese es el comportamiento que estoy obteniendo actualmente en Chrome - jsfiddle.net/8gvhL1dz/22 )También es posible con vanilla JS
fuente
Cuando usa Mongoose para almacenar fechas en MongoDB, debe usar toISOString () porque todas las fechas se almacenan como fechas ISO con milisegundos.
fuente
Si solo desea la parte de la fecha (por ejemplo, 2017-06-27), y desea que funcione independientemente de la zona horaria y también en árabe, aquí está el código que escribí:
fuente
fuente