2009-04-23 4 views
1

ich das folgende Stück Code:Machen Sie einen Termin Objekt nehmen Zeitzone in Betracht

$.log('Ending time: ' + ending_time); 
$.log('Now: ' + new Date()); 
$.log('Difference: ' + new Date(ending_time - new Date())); 

Der Ausgang ist die folgende:

Ending time: Thu Apr 23 2009 14:31:29 GMT+0200 
Now: Thu Apr 23 2009 11:56:02 GMT+0200 
Difference: Thu Jan 01 1970 03:35:26 GMT+0100 

Ich bin mit der „Differenz“ zu zeige an, wie viele Stunden und Minuten übrig sind bis ending_time, aber wegen der Zeitzonenunterschiede bekomme ich die falsche Zeit (um eine Stunde versetzt). Gibt es also eine gute Möglichkeit, die Differenz unter Berücksichtigung von Zeitzonen zu berechnen?

Antwort

1

Sie haben es nicht mehr mit einem Datum zu tun, also wandeln Sie es nicht in eins um. Sie haben einen Zeitunterschied, der zum Beispiel keine Zeitzone hat. Das Ergebnis sollte in Millisekunden liegen. Führen Sie die entsprechende Berechnung durch, um Minuten, Stunden, Tage oder möglicherweise alle oben genannten Werte zu erhalten.

+0

Genau das habe ich gemacht. Ich glaube, ich war zu faul, um mich selbst zu berechnen ... –

1

Sie sollten die Funktion getTimezoneOffset verwenden können.

Überprüfen Sie es here.

1

können Sie Folgendes verwenden:

(new Date()).getTimezoneOffset() 

, die Sie die Zeitzone des in Minuten Browser des Clients Offset geben. Natürlich müssen Sie auch den Zeitzonen-Offset der Endzeit kennen.