2010-06-02 67 views
0

我的日曆在PST服務器上正常工作,但在生產服務器(EST)上,所有事件似乎都提前一天結束。我不確定它是否是時區問題,因爲即使是3小時的差異,事件也應顯示在適當的日期。時區問題?

有沒有其他人遇到過這個問題?

+1

這是什麼日曆?這是一個編程問題? – bmargulies 2010-06-02 23:48:32

回答

1

這是穿越時區障礙時的典型問題。如果只有日期由數據庫承載,但數據轉換爲時間戳並針對時區進行了調整,則會出現問題2010-06-02變爲2010-06-02 00:00 EST變爲2010-06-01 21:00 PST 。

0

如果事件提前一天結束,但不提前一天提前開始,那麼很可能您的後端腳本沒有獲取或不尊重來自瀏覽器的結束日期時區信息。如果活動從午夜PDT(或美國東部時間凌晨3點)開始,但是在美國東部時間午夜(或PDT晚上9點)或者午夜格林威治標準時間(或PDT下午4點)結束,這可能會導致事件「儘早結束」。瀏覽器應該發送帶有完整日期時間信息的所有事件(例如'6/3/2010 00:00:00 GMT-0800'),後端腳本也應該忠實地保存並報告這些信息。

我住在日本但在北美做了很多的事情,所以我不斷地看到這個問題。我發現它確實有助於開發人員考慮GMT中的所有事件,而不是您自己的家庭時區 - 特別是如果您的任何用戶居住在不同的時區內。 JS很好地處理時區信息(除了缺乏對夏令時的意識,它運行得非常好),而且大多數服務器都非常好地處理時區,所以你看到的大多數錯誤都與發送不完整日期信息的客戶端腳本有關,並試圖使做。

這也是值得檢查,看看你的應用程序如何在2010年11月7日上午2:00,因爲那一天是25小時長和2011年3月13日,因爲那一天只有23小時長。切換到DST是一個魔鬼。