2016-03-21 4 views
1

Ich habe eine Zeichenfolge wie folgt:Javascript - umformatieren Datum Zeichenfolge ISO8601

21.03.2016 23:59 

Und ich brauche diese Zeichenfolge in einen ISO8601 Datum-Zeit-String umgewandelt:

YYYY-MM-DDTHH:mm:ss+00:00 

Gibt es ein einfache Möglichkeit, dieses Datum zu konvertieren? Ich versuche es mit moment.js, aber ich kann keine Funktion finden, ein vorhandenes Datum zu analysieren.

+0

Das hat wirklich nichts mit jQuery zu tun. Die ursprüngliche Zeichenfolge hat keine Zeitzone und wandelt sie in eine Zeichenfolge um, die eine Genauigkeit erzeugt, die im Original nicht verfügbar war. Daher könnte sie irreführend sein. – RobG

Antwort

1

Mit moment.js Sie tun können:

var dateString = '21.03.2016 23:59'; 
var momentDate = moment(dateString, 'DD.MM.YYYY HH:mm'); 
console.log(momentDate.toISOString()); 

Hier ist ein fiddle dies zeigt.

+0

Danke dafür, hat wie erwartet funktioniert! :) – rockZ

1

Sie können dies auch tun, ohne moment.js zu verwenden. Blick Code wie folgt:

(new Date("03.21.2016 23:59")).toISOString() 

gerade benötigen Sie eine Zeichenfolge 2016.03.21 23.59 (dd-mm-yyyy) bis 2016.03.21 23.59 (mm ändern -dd-yyyy). Sie können dies leicht tun, indem Sie das Datum teilen und die Reihenfolge des aufgeteilten Teils ändern.

Und wenn Sie dies nicht tun möchten, dann verwenden Sie einfach moment.js wie matthias Antwort.

+0

THX für die TOISOString() -Funktion. Ich wusste das nicht :) – rockZ

+2

Nein, tu das nicht. Das Parsen vom "21.03.2016 23:59" ist vollständig implementierungsabhängig und muss nicht vom Date-Konstruktor (oder Date.parse, sie sind äquivalent) geparst werden. – RobG