2017-04-07 3 views
0

Die meisten Browser können eine Art von Zeitzone Informationen anzeigen: zum Beispiel new Date().toString() gibt "Fri Apr 07 2017 02:20:12 GMT-0500 (CDT)" zurück.Ist Browser Datum # toString Zeitzone zuverlässig

Allerdings sehe ich, dass viele Lösungen dies überhaupt nicht verwenden, stattdessen versuchen, Zeitzone mit mehreren Methoden zu erraten.

Wenn new Date().toString() einige Zeitzoneninformationen zurückgibt, wird das korrekt sein? Oder können Browser auch falsche Informationen zurückgeben?

+0

Ich denke, wenn das nicht der Fall ist, dann muss der Browser wahrscheinlich die Zeitzone erraten, und es ist nicht in der Lage, es direkt von OS zu bekommen. – lulalala

Antwort

1

Der Wert in Klammern ist in der ECMAScript-Spezifikation nicht definiert. Es liegt an jeder Implementierung, zu entscheiden, was sie dort zeigen möchten. Daher ist der Wert nur so zuverlässig wie die Implementierung es macht. Man kann nichts allgemein sagen, außer dass man widersprüchliche Ergebnisse erwartet.

Das heißt, viele moderne Implementierungen nehmen ihre Werte aus den gleichen Quelldaten, die the Unicode CLDR project ist, in der Regel über ICU. Diejenigen, die dies tun, geben normalerweise einen vollständig lokalisierten Textwert an, z. B. "Eastern Daylight Time" in englischer Sprache. (Nicht nur "EDT")