Immer aktuelle Datum in Millisekunden (UTC) (KEINE Verwendung von strings)
Gut, man könnte denken, dass diese Frage schon gefragt wurde, aber ich denke, es hat nicht. Die Lösungen, die ich gelesen habe über alle diese "puzzle" - Technik (wie getUTCMonth() + getUTCMinutes + ...
).
Aber ich will nur vergleichen der verstrichenen Sekunden zwischen zwei UTC (!) Termine, gilt dies nicht.
Wie jeder weiß, kann man die aktuellen (nicht-UTC) Datum:
var d = new Date();
var t_millis = d.getTime();
Aber das ist NICHT das, was ich will. Ich möchte das aktuelle system-Datum in UTC und in Millisekunden, also nicht Durcheinander über mit Saiten. AFAIK wird die variable t_millis
enthalten den Millisekunden-Wert den aktuellen Zeitstempel in GMT-Zeit, nicht UTC).
(Da d
ist in GMT, wie gut. , Es sei denn getTime() ist eine Art der impliziten Zeitzone Konvertierung, ich. e. addition mit dem offset VOR gibt die Millisekunden an, aber ich habe nie gelesen, dass irgendwo)
Also gibt es wirklich keinen anderen Weg, als das hinzufügen von offset zu der Zeit Wert?
Ich bin verzweifelt auf fehlt eine Funktion wie getUTCTimeMillis()
bekannt aus anderen Sprachen.
Ja UTC ist GMT...ich hätte sagen sollen "lokale Zeit" statt. Mein schlechtes. Wenn ich meine "GMT", die ich in der Regel bedeuten, die gegenüber der UTC-ich. e. lokale Zeit gezeigt, die von GMT+/-offset, während ich halte UTC = konstant.
InformationsquelleAutor syntaxerror | 2012-06-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist eine alte Frage, aber für die Zwecke der neuen Besucher, hier ist die RICHTIGE Antwort:
Es gibt die Anzahl der vergangenen Millisekunden seit dem 1. Januar 1970 00:00:00 UTC
InformationsquelleAutor advncd
Den Millisekunden-Wert der time-of-day ist die gleiche, unabhängig von Ihrer Zeitzone. Das heißt, es gibt keine Zeitzonen auf dem Planeten Erde, die von einander unterscheiden, indem die Anzahl von Millisekunden, die größer als null. (Können Sie unterscheiden, die durch einen ganzzahligen Anzahl von Stunden oder sogar Minuten, aber keine Sekunden oder Millisekunden.)
Das heißt, der Wert, den Sie bekommen, wieder aus
getTime()
ist eine UTC-relative Zeitstempel. Wenn zwei web-Browser auf die unterschiedlichsten Flecken auf dem Globus ein Date-Objekt zur gleichen Zeit, werden Sie beide bekommen den gleichen Wert aus.getTime()
(vorausgesetzt, dass die Uhren synchronisiert sind, was natürlich sehr unwahrscheinlich ist).Hier: 1338585185539 Das ist ein timestamp-ich habe von meinem browser. Ich bin in Austin, TX, und jetzt ist es 4:13 nachmittags (so, dass die timestamp-werden von etwas vorher). Stecken Sie es in eine Date-Instanz auf Ihrem Computer und sehen, was es sagt.
(Bearbeiten — für die Nachwelt Willen, dieser timestamp ist vom 1. Juni 2012.)
Sorry, aber ich bin nicht einverstanden mit diesem. In der Tat, die Zeit, die vergangen, seit 1970 in einer Zeitzone ist identisch mit der Zeit in irgendeiner anderen Zeitzone, aber UTC, ist etwas anderes. Warum hätten Sie so viele Funktionen parallel zu den standard-Funktionen Datum, UTC, die in Ihrem Namen? Hier ist eine Erklärung, warum die UTC ist fast das gleiche wie GMT, aber nicht ganz:
huh? Das UTC-Datum und-Funktionen sind da, weil die nicht-UTC-APIs für alle Berichts-Zeit/Datum-relativ zur lokalen Zeitzone.
Sorry für meinen unvollständigen post (ich habe versucht, link auf einen wikipedia-Abschnitt). Ja aber es gibt 2 Dinge, die ich nicht wirklich Zustimmen, hoffentlich bin ich nicht missverstehen: dass getTime() ist eine UTC-relative Zeitstempel und eine GMT-UTC-Konvertierung (oder jede Art der Umwandlung) sollte implizit durchgeführt wird, bevor die Berechnung getTime () -
getTime() ist eine Zeitzone relativ, nicht UTC relativen Wert (dies ist der Grund, warum es ist überall das gleiche) und getTime () - keine Konvertierung zu löschen, richtig? Wenn Sie jede Art von Synchronisierung über Zeitzonen (das ist, warum ich vermute, diese Frage wurde in den ersten Platz) müssen Sie die gemeinsame Referenz, die ist UTC. Wenn Sie nur wollen, um zu Messen die verstrichene Zeit in Ihre lokale Zeitzone, dann ist es eigentlich egal, die Sie verwenden können, getTime()
InformationsquelleAutor Pointy
wie etwa:
wenn er tut, was wäre der Unterschied zwischen
now
undutc_now
? Das ist der springende Punkt hier.InformationsquelleAutor kirpit
Ich benutzte diese Funktion, um das problem zu lösen.
1. Januar 1970 00:00:00 in der client-Zeitzone.
Januar 1970 00:00:00 UTC.
Hier ist ein one-liner für aktuelle Browser:
Date.nowUTC=()=>(d=>d.getTime()-(d.getTimezoneOffset()*6e4))(new Date())
Ich glaube nicht, dass dies korrekt ist. Nach MDN:
getTime() always uses UTC for time representation. For example, a client browser in one timezone, getTime() will be the same as a client browser in any other timezone.
. Darüber hinaus sagen Sie, dass der Rückgabewert istA number representing the milliseconds elapsed between 1 January 1970 00:00:00 UTC and the given date.
Nicht die Anzahl der Millisekunden, die der client-Zeitzone.Das ist falsch, getTime zurück in UTC!
InformationsquelleAutor Blacknet
Erhalten den Zeitstempel von einem Datum in UTC, müssen Sie berücksichtigt die Zeitzone und die Sommerzeit für dieses Datum. Zum Beispiel, ein Datum im Januar oder im Juli könnte bedeuten, 1 Stunde Unterschied.
Unten die Möglichkeit genau das tut.
Es kann verwendet werden, wie in:
InformationsquelleAutor Darlesson