Estos documentos mencionan moment.ISO_8601
como 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
format
ytoISOString
. Ambos son correctos pero el proceso subyacente difiere.toISOString
se 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,format
usa 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
format
sin 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