Ich möchte eine Datumszeichenfolge in Date
Javascript konvertieren. Verwenden Sie diesen Code:
var date = new Date('2013-02-27T17:00:00');
alert(date);
'2013-02-27T17:00:00'
ist die UTC-Zeit im JSON-Objekt vom Server.
Das Ergebnis des obigen Codes unterscheidet sich jedoch zwischen Firefox und Chrome:
Firefox kehrt zurück:
Wed Feb 27 2013 17:00:00 GMT+0700 (SE Asia Standard Time)
Chrome kehrt zurück:
Thu Feb 28 2013 00:00:00 GMT+0700 (SE Asia Standard Time)
Es ist 1 Tag anders, das richtige Ergebnis, das ich erwarten würde, ist das Ergebnis von Chrome.
Demo-Code: http://jsfiddle.net/xHtqa/2/
Wie kann ich dieses Problem beheben, um von beiden das gleiche Ergebnis zu erhalten?
javascript
date
timezone
cuongle
quelle
quelle
Date {Wed Feb 27 2013 17:00:00 GMT+0000 (GMT)}
für mich in beiden (Linux).Antworten:
Das richtige Format für UTC wäre
2013-02-27T17:00:00Z
(Z steht für Zulu Time). Anhängen,Z
wenn nicht vorhanden, um die korrekte UTC-Datums- / Uhrzeitzeichenfolge zu erhalten.quelle
Ja, leider sind die Datumsanalyse-Algorithmen implementierungsabhängig. Aus der Spezifikation von
Date.parse
(die von verwendet wirdnew Date
):Verwenden Sie eine datetime-Zeichenfolge mit Zeitzoneninformationen, z . B., damit der
Date
Konstruktor (möglicherweise) die lokale Zeitzone nicht verwendet"2013-02-27T17:00:00Z"
. Es ist jedoch schwierig, ein Format zu finden, das von jedem Browser zuverlässig analysiert wird - das ISO-Format wird vom IE <8 nicht erkannt (siehe JavaScript: Welche Browser unterstützen das Parsen von ISO-8601-Datumszeichenfolgen mit Date.parse ). Verwenden Sie besser einen Unix-Zeitstempel, dh Millisekunden seit der Unix-Epoche , oder verwenden Sie einen regulären Ausdruck, um die Zeichenfolge in ihre Teile zu zerlegen und diese dann einzugebenDate.UTC
.quelle
Ich habe hier eine Sache gefunden. Es scheint, dass die native Firefox Inspector Console einen Fehler aufweist: Wenn ich "new Date ()" im nativen Inspector ausführe, wird ein Datum mit falscher Zeitzone und GMT-Gebietsschema angezeigt, aber in der Firebug Extension Console wird derselbe Befehl ausgeführt, das Datum gezeigt verwendet meine korrekte Zeitzone (GMT-3: 00).
quelle
Versuchen Sie es mit moment.js. Es geht sehr gut und in ähnlicher Weise mit allen Browsern. kommt mit vielen Formatierungsoptionen. Verwenden Sie moment ('date'). format ("") anstelle von New Date ('date').
quelle
Es wurde festgestellt, dass FireFox nicht das gleiche Ergebnis wie Chrome zurückgibt. Das Format, das Sie in kendo.toString für das Datum verwenden, macht anscheinend einen Unterschied.
Das letzte Konsolenergebnis ist das, was ich brauchte:
quelle