2013-04-02 99 views
0

我在使用日期時遇到javascript日光節約問題。有關國家是英國。Javascript日期夏令時問題

此前,3月31日之前,下面的代碼給了準確的日期:

var caseClosed = new Date(now.getUTCFullYear(), now.getUTCMonth(), 
now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds()); 

所以,當我用這兩個日期之間的區別,日期由上面的代碼和其他日期(這是從一個檢索遺留系統按照系統日期時間存儲正確的日期),我得到了正確的正確值。

但在那之後,今天說,每當我使用上面的代碼,我得到一個小時;這導致兩個日期之間的負值。

說,例如,如果時間是18:06,我通過使用上面的代碼得到它17:06。所以,我嘗試使用下面的代碼,它現在給了我正確的時間:

var caseClosed = new Date(now.getFullYear(), now.getMonth(), 
now.getDate(), now.getHours(), now.getMinutes(), now.getSeconds()); 

任何人都可以請解釋正在發生的事情,如果上面的代碼(不使用UTC的東西),甚至當夏令是關閉的,不將工作多給一小時(60分鐘)?

+0

上面的代碼*正確*顯示它是(在撰寫本文時)17:26 UTC。你需要決定是否使用UTC或不... –

回答

1

那麼,UTC日期不同於系統日期。雖然系統日期受日光變化的影響,但UTC不是....請注意,如果您希望使用此值在服務器上存儲任何內容,則應使用服務器時間,而不是客戶端時間...

+0

嗯,實際上我會解釋一下這個場景。我們正在使用一個遺留系統,該系統根據系統時間存儲記錄創建日期時間(可在任務欄等中找到)。現在我需要使用JavaScript獲取當前日期時間,並計算創建的日期時間和當前日期時間之間的差異。那麼,你會在這裏建議什麼? – Anupam