2013-04-14 36 views
1

我有一個JavaScript日期,例如下面的一個,這就是「現在」加說20分鐘:這是一個倒計時腳本使用javascript日期,以正確的時間,以GMT

var end = new Date('04/14/2013 14:00'); 

到這個時候(交付ETA)。

但是這依賴於客戶端計算機完成倒計時的時間,這可能不是格林威治標準時間或GMT + 1夏時制時間。

我在這裏看着UTC方法http://www.w3schools.com/jsref/jsref_utc.asp,但坦率地說迷路了。

所以我的問題是:

我怎樣才能調整可變考慮到客戶機上GMT和當地設置之間可能存在時間差,以便它可以在信任的?

注意:「可信」在這裏是一個強大的詞,也許「更可能是準確的」可能會更好:)此外,這需要純粹的JS沒有jQuery。

馬特

+0

無論如何jQuery沒有提供任何日期:-) – Bergi

回答

1

我看着UTC方法,但坦率地說迷路了。

不,使用Date.UTC function是好的,要走的路。對你來說,這將是

var end = new Date(Date.UTC(2013, 3, 14, 14, 0)); // notice months are zero-based 

當然,你可以直接使用毫seconds since epoch,特別是如果你動態生成的日期值:

var end = new Date(1365948000000); 
0

這也許並不直接回答這個問題,也許我已經錯過了一些東西,但是看起來你已經過度複雜化了問題 - 如果你使用日期作爲倒數計時器的一部分,那麼你必須始終知道在任何特定時刻偏移量(倒數)是什麼。

由於Date始終返回本地時間,如果你不傳遞任何參數的構造,爲什麼不只是決定你「結束」日期的客戶端僅基於您所抵消。例如。

var offset = 1000*60*20; // 20 minutes (in milliseconds) 
var end = new Date(new Date().getTime() + offset); 

這樣你就不用擔心當地的時區,甚至是DST。