new Date() anders funktioniert in Chrome und Firefox
Ich will convert date string Date
von javascript, 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.
Aber das Ergebnis des obigen Codes ist der Unterschied zwischen Firefox und Chrome:
Firefox gibt:
Wed Feb 27 2013 17:00:00 GMT+0700 (SE Asia Standard Time)
Chrome gibt:
Thu Feb 28 2013 00:00:00 GMT+0700 (SE Asia Standard Time)
Anders ist es 1 Tag, das richtige Ergebnis würde ich erwarten, dass das Ergebnis aus Chrom.
Demo-code: http://jsfiddle.net/xHtqa/2/
Wie kann ich dieses problem beheben, um das gleiche Ergebnis von beiden?
Ist das auf dem gleichen computer?
der wichtigste Punkt ist, dass Chrome fügt timezone offset beim Firefox nicht
Haben Sie gesehen, diese Frage: stackoverflow.com/questions/9062863/...
Es ist
Nitpicker ' s corner: «UTC-Zeit im JSON-format» JSON - format? Genau, eine gemeinsame Beschwerde über JSON ist, dass es nicht definieren Sie ein beliebiges Datum-format überhaupt.
der wichtigste Punkt ist, dass Chrome fügt timezone offset beim Firefox nicht
Haben Sie gesehen, diese Frage: stackoverflow.com/questions/9062863/...
Es ist
Date {Wed Feb 27 2013 17:00:00 GMT+0000 (GMT)}
für mich in beiden (Linux).Nitpicker ' s corner: «UTC-Zeit im JSON-format» JSON - format? Genau, eine gemeinsame Beschwerde über JSON ist, dass es nicht definieren Sie ein beliebiges Datum-format überhaupt.
InformationsquelleAutor cuongle | 2013-02-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Richtigen format UTC wäre
2013-02-27T17:00:00Z
(Z steht für Zulu-Zeit). AppendZ
wenn nicht korrekte UTC-datetime-Zeichenfolge.Life Saver.......
vielen Dank, ich habe gesessen, mit diesem Problem seit zwei Tagen, aber dieser post alles gelöst.
InformationsquelleAutor Petr Abdulin
Ja, leider ist das Datum-parsing-algorithmen sind von der Implementierung abhängig. Aus der Spezifikation von
Datum.parse
(was vonneues Datum
):Machen die
Date
constructor nicht (vielleicht) Verwendung der lokalen Zeitzone, verwenden Sie eine datetime-Zeichenfolge mit timezone Informationen, z.B."2013-02-27T17:00:00Z"
. Es ist jedoch schwer zu finden, ein format, das zuverlässig analysiert, die von jedem browser - das ISO-format wird nicht anerkannt, indem IE<8 (siehe JavaScript: Welche Browser unterstützen das Parsen von ISO-8601 Datums-String mit Datum.analysieren). Besser verwenden Sie einen unix-timestamp, d.h. Millisekunden seit unix-Epoche, oder einen regulären Ausdruck verwenden, um zu brechen die Zeichenfolge nach unten in seine Teile und dann füttern Sie diese inDatum.UTC
.OK, Korrektur. Sieht aus wie ein Fehler in der ES5.1 spec - die Absicht war, entsprechen der ISO-8601 wo fehlt Z heißt lokale Zeit (also Chrom passt ES5.1, Firefox & IE entsprechen ISO-8601)
Vielen Dank für die weitere Untersuchung. Doch unabhängig davon, was die spec-Staaten, [alt] Browser noch sind, es zu tun anders 🙂
Seltsam mit Datum.Parse vs. neues Datum fest, das Problem, das ich hatte, wo Chrome würde konvertieren Sie das Datum in der lokalen Zeitzone, anstatt behandeln Sie es wie bereits in der lokalen Zeitzone.
ein bisschen komisch, wie der Aufruf der Date-Konstruktor mit einem string ist, soll die gleiche sein wie mit Datum.parse.
InformationsquelleAutor Bergi
Fand ich eine Sache hier. Es scheint die native Firefox-Inspektor-Konsole möglicherweise einen Fehler haben:
Wenn ich "new Date()" in der native-Inspektor, zeigt es ein Datum mit falscher Zeitzone, GMT Gebietsschema, aber das laufen den gleichen Befehl in der Firebug-Erweiterung-Konsole, wird das Datum angezeigt, verwendet meine richtige Zeitzone (GMT-3:00).
InformationsquelleAutor Sergio Abreu
Versuchen Sie es mit moment.js. Es geht sehr gut, und in ähnlicher Weise mit allen Browsern. kommt mit vielen Formatierungsmöglichkeiten. moment('Datum').format("") statt New Date('Datum')
InformationsquelleAutor MSIslam
Bemerkt, dass FireFox war nicht Rückkehr zu demselben Ergebnis wie Chrome. Sieht aus wie das format, das Sie verwenden in kendo.toString für Datum, macht einen Unterschied.
Die Letzte Konsole das Ergebnis ist das, was ich brauchte:
InformationsquelleAutor MJ Storm