2013-06-03 11 views
5

Ich habe das folgende in der Konsole auf Firefox (Version 21) ausgeführt und ich bekomme Ergebnisse, die ich nicht erwarte.Javascript scheint Zeitzonen rückwärts mit Firefox zu verwenden

new Date(1362891600000); 

var date = new Date(1362891600000); 
var time = date.getHours(); 
new Date(date.setHours(date.getHours() + 24)); 

Das Ergebnis wirft mich wirklich für eine Schleife.

Das erste Datum wird als Eastern Daylight Time angezeigt, während das zweite Datum als Eastern Standard Time angezeigt wird. Es ist total rückwärts. Dies passiert nicht mit IE oder mit Chrome.

Was geht hier vor? enter image description here

+0

Beachten Sie, dass, während die Bezeichnungen "Eastern Daylight Time" und "Eastern Standard Time" rückwärts sind, die aktuellen Zeitzonen-Offsets (GMT-0500 und GMT-0400) korrekt sind. Wenn der numerische Zeitzonen-Offset und der Name der Zeitzone nicht übereinstimmen, kann ich mir nicht vorstellen, dass irgendetwas, was Sie falsch gemacht haben, dazu führen könnte. Daher würde ich sagen, es ist ein Firefox-Bug! – Celada

+0

@Celada danke ... das ist irgendwie, wovor ich Angst hatte. Ich hatte gehofft, dass es einer von denen war, "es sieht so aus, als wäre es XYZ-Fehler, aber in Wirklichkeit war es ich, der tatsächlich etwas falsch gemacht hat" -Szenarien. – Joseph

+0

Dies ist definitiv ein Fehler in Firefox. Sie sollten es ihnen wahrscheinlich melden. Beachten Sie jedoch, dass alles nach dem Offset nicht standardgemäß ist und die Unterstützung in Browsern und Betriebssystemen stark variiert. Sie können es einem Benutzer anzeigen, aber verlassen Sie sich nicht auf etwas, das kritisch ist. –

Antwort

4

Dies ist definitiv ein Fehler in Firefox. Sie sollten es ihnen wahrscheinlich melden.

Beachten Sie jedoch, dass alles nach dem Offset nicht standardgemäß ist und die Unterstützung in Browsern und Betriebssystemen stark variiert.

Zum Beispiel zeigen einige Browser einen Zeitzonennamen an, während andere eine Abkürzung oder interne ID anzeigen. Einige behalten ihre eigenen Zeichenfolgen und andere verwenden die vom Betriebssystem zurückgegebenen Werte. Und unter Windows gibt es eine andere Zeitzonendatenbank als auf Linux oder Mac. Außerdem können einige Browser diese Zeichenfolge mithilfe von Einstellungen für Sprache, Gebietsschema oder Kultur lokalisieren.

Sie können es einem Benutzer anzeigen, wenn Sie wissen, dass der Wert in seiner eigenen lokalen Zeitzone ist. Aber verlasse dich nicht auf etwas Kritisches.

+0

Fehler hier abgelegt: (bugzilla.mozilla.org/show_bug.cgi?id=879261) – Joseph

+0

Fehler scheint wieder in FF 56.0.1 (64 Bit) zu sein. Mit Blick auf die Geschichte des Bugs scheint es behoben zu sein, dann nicht behoben, dann behoben, dann nicht behoben .... –