Nun, Sie könnten denken, dass diese Frage bereits gestellt wurde, aber ich denke, dass es nicht so ist. Die Lösungen, die ich über alle gelesen habe, hatten diese "Puzzle" -Technik (wie getUTCMonth() + getUTCMinutes + ...
).
Da ich aber nur die verstrichenen Sekunden zwischen zwei UTC (!) Daten vergleichen möchte, gilt dies nicht.
Wie Sie wissen, können Sie das aktuelle (nicht-UTC) Datum wie folgt abrufen:
%Vor% Aber das ist NICHT was ich will. Ich hätte gerne das aktuelle Systemdatum in UTC und in Millisekunden, damit Sie sich nicht mit Strings herumschlagen müssen. AFAIK Die Variable t_millis
enthält den Millisekundenwert des aktuellen Zeitstempels in GMT, nicht UTC.
(Da d auch in GMT ist. Es sei denn getTime () führt eine Art implizite Zeitzonenumwandlung durch, dh das Hinzufügen des Versatzes BEVOR gibt die Millisekunden aus, aber ich habe Lesen Sie nie darüber irgendwo)
Gibt es also wirklich keinen anderen Weg als den Offset zum Zeitwert hinzuzufügen?
Ich vermisse verzweifelt eine Funktion wie getUTCTimeMillis()
aus anderen Sprachen.
Der Millisekundenwert der Tageszeit wird unabhängig von Ihrer Zeitzone gleich sein. Das heißt, es gibt keine Zeitzonen auf dem Planeten Erde, die sich um eine Anzahl von Millisekunden größer als Null voneinander unterscheiden. (Sie können sich um eine ganze Zahl von Stunden oder sogar Minuten unterscheiden, aber nicht um Sekunden oder Millisekunden.)
Das heißt, der Wert, den Sie von getTime()
erhalten, ist ein UTC-relativer Zeitstempel. Wenn zwei Webbrowser an sehr unterschiedlichen Orten auf dem Globus gleichzeitig ein Date-Objekt erstellen, erhalten sie beide den gleichen Wert von .getTime()
(vorausgesetzt, die Uhren sind synchronisiert, was natürlich sehr unwahrscheinlich ist).
Hier: 1338585185539 Das ist ein Zeitstempel, den ich gerade von meinem Browser bekommen habe. Ich bin in Austin, TX, und jetzt ist es 4:13 Uhr nachmittags (so dass der Zeitstempel von etwas davor sein wird). Stecken Sie es in eine Date-Instanz auf Ihrem Computer und sehen Sie, was es sagt.
( edit - der Zeitstempel stammt aus dem 1. Juni 2012.)
Ich habe diese Funktion verwendet, um das Problem zu lösen.
%Vor%Um den Zeitstempel von einem Datum in UTC zu erhalten, müssen Sie die Zeitzone und die Sommerzeit für dieses Datum berücksichtigen. Zum Beispiel könnte ein Datum im Januar oder im Juli 1 Stunde Unterschied bedeuten.
Die Option unten macht genau das.
%Vor%Es kann wie folgt verwendet werden:
%Vor%Tags und Links javascript date utc milliseconds