Wenn Sie möchten, dass die Eingabe in UTC erfolgt, sollten Sie stattdessen Folgendes tun:
%Vor% Wie SLaks darauf hingewiesen hat, laufen die Monate 0-11, aber selbst dann - müssen Sie das Datum als UTC initialisieren, wenn Sie die Antwort in UTC wollen. In Ihrem Code initialisierten Sie ein lokales Datum und konvertierten danach in UTC. Das Ergebnis wäre abhängig von der Zeitzone des Computers, auf dem der Code ausgeführt wird. Mit Date.UTC
erhalten Sie einen Zeitstempel zurück - nicht ein Date
-Objekt, und es wird unabhängig davon, wo es ausgeführt wird, das gleiche Ergebnis sein.
Von der Debugging-Konsole von Chrome:
Dies ist der gleiche Wert, der von Ihrem .NET-Code zurückgegeben wird. Das sieht gut aus, außer dass ich ein long
, nicht ein string
zurückgeben würde.
Das Datum JS ist falsch, glaube ich. Lassen Sie die var utcDate
-Zeile weg und geben Sie nur d.getTime()
Die Zeit zwischen zwei Daten ist unabhängig von Zeitzone und Offset gleich. Zeitzonen sind relativ zu einem ACTUAL-Zeitpunkt. Wenn Sie also .getTime()
an der UTC- oder EST- oder PST-Datumsangabe aufrufen, ist dies im Vergleich zu 1970-1-1 derselben Zeitzone derselbe.
BEARBEITEN: Per @Slaks oben verwenden Sie auch nicht den 0-basierten Monat (worüber ich auch keine Ahnung hatte).
Tags und Links javascript c# datetime datetime-format