2012-12-19 24 views
1

我想知道是否有任何提供正確時間的API /方式/網站/鏈接?總是得到正確的日期時間?

不是服務器日期時間或客戶端日期時間。我正在使用日期時間在我的遊戲網站上倒數計時,以便用戶有時間進行遊戲。用戶來自世界各地,所以如果從美國到歐洲,使用他們的客戶時間將不匹配。

然後通常我會使用服務器時間,但不知何故,它有時會跳過1.2小時?我想確保任何人都從同一個來源製作時間戳,並且來源永遠是正確的!

任何想法?

+0

http://www.ntp.org/ – DaveRandom

+0

你的意思是原子時間?如果你通過網絡(比如互聯網)獲得這個信息,總會有延遲......聽起來你應該設置你的網絡,以便時間從主服務器推送到所有服務器上...... – Ben

回答

0

首先,您應該在客戶端和服務器代碼中使用UTC以避免時區問題。

此外,我瞭解您的問題的方式並非如此重要,以至於時間恰好(納秒)是正確的,更重要的是,時間將與服務器和客戶端上的時間相同。

因此,您需要客戶端和服務器的UTC時間的唯一來源。這應該肯定是您的服務器。我可以建議使用你的服務器作爲客戶端的NTP服務器。但假設你在網絡環境中,這聽起來不切實際。

所以我會建議添加時間戳 - UTC時間 - 從服務器的每條消息。客戶必須使用此時間戳作爲參考。 Additonaly可以通過調用你的服務器定期更新他們的時間。

0

使用你的服務器的時間是罰款,只要確保正確獲得時區:

$now = new DateTime; 
$now->setTimeZone(new DateTimeZone("Europe/London")); 

現在,$now將包含一個DateTime對象,在倫敦正確的時間。

PHP在夏令時和奇怪的自定義時間事件方面做得很好。

+0

當這樣做時:'code' $ now = new DateTime; $ now-> setTimeZone(new DateTimeZone(「Europe/London」)); echo'Now:'。$ now。'
'; 退出;'代碼'我得到服務器錯誤?爲什麼? – Mansa