In diesem Dokument wird moment.ISO_8601
als Formatierungsoption erwähnt (ab 2.7.0 - http://momentjs.com/docs/#/parsing/special-formats/ ), aber keine dieser Funktionen (auch nicht 2.7.0):
var date = moment();
date.format(moment.ISO_8601); // error
moment.format(date, moment.ISO_8601); // error
( http://jsfiddle.net/b3d6uy05/1/ )
Wie kann ich eine ISO 8601 von moment.js erhalten?
javascript
momentjs
date-formatting
iso8601
Sennett
quelle
quelle
moment().toISOString()
Antworten:
http://momentjs.com/docs/#/displaying/as-iso-string/
Update Basierend auf der Antwort: von @sennet und dem Kommentar von @dvlsg (siehe Geige ) sollte beachtet werden, dass es einen Unterschied zwischen
format
und gibttoISOString
. Beide sind korrekt, aber der zugrunde liegende Prozess unterscheidet sich.toISOString
Konvertiert in ein Date-Objekt, setzt auf UTC und verwendet dann die native Date-Prototyp-Funktion, um ISO8601 in UTC mit Millisekunden (YYYY-MM-DD[T]HH:mm:ss.SSS[Z]
) auszugeben .format
Verwendet andererseits das Standardformat (YYYY-MM-DDTHH:mm:ssZ
) ohne Millisekunden und behält den Zeitzonenversatz bei.Ich habe ein Problem geöffnet , da ich denke, dass es zu unerwarteten Ergebnissen führen kann.
quelle
moment().utc().format("OUTPUT_FORMAT")
moment().toISOString(true);
.Verwendung
format
ohne Parameter:( http://jsfiddle.net/8gvhL1dz/ )
quelle
date.toISOString()
wird die Millisekunden behalten und utc verwenden,date.format()
wird die Millisekunden löschen und Ihre lokale Zeitzone verwenden (oder zumindest das ist das Verhalten, das ich derzeit in chromeAuch mit Vanille JS möglich
quelle
Wenn Sie Mongoose zum Speichern von Daten in MongoDB verwenden, müssen Sie toISOString () verwenden, da alle Daten als ISO-Daten mit Millisekunden gespeichert werden.
quelle
Wenn Sie nur den Datumsteil (z. B. 27.06.2017) möchten und möchten, dass er unabhängig von der Zeitzone und auch auf Arabisch funktioniert, habe ich folgenden Code:
quelle
quelle