2011-10-13 127 views
4

處理日期,我使用一個jQuery UI public方法在我的應用程序:jQuery.datepicker.formatDate 見PARAMS &源位置:https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.datepicker.jsjQuery.datepicker.formatDate和時區偏移

但是錯誤的日期是根據計算機時區顯示有時顯示。

演示在這裏:http://jsfiddle.net/7ACdB/

隨着UTC + 1(巴黎)在Windows時區,我得到:

03/30/20 
03/30/20 

是Windows中的UTC-6(美國&加拿大)時區,我有:

03/29/20 <- meh! 
03/30/20 

當您更改操作系統時區時,您需要重新啓動瀏覽器(至少適用於谷歌瀏覽器)。

我的問題是您可以想象的「03/29/20」日期。

有人可以向我解釋,如果這是正常的或jQuery的用戶界面問題?

我開始認爲在美國時區看到「Mon Mar 30 2020 00:00:00 GMT + 0200(浪漫夏令時間)」作爲03/29/20是正常的,但我是不太確定。 : -/

回答

5

你得到的是正確的。你的例子爲巴黎設定午夜的時間。午夜巴黎是下午6時當天在美國東部時區,我是在

你的第一次:GMT + 0200是巴黎

你的第二個時間:GMT-0500是芝加哥(值得注意的是目前夏令時)

所以,當你(用我們的6 time zones之一)更改時區到美國,產量是當那個時候在巴黎,在美國的時間。

這裏是一個更新的擺弄着一組到早上6個巴黎時間:http://jsfiddle.net/jensbits/7ACdB/1/

+0

再次,感謝您的回答。隨着我對時區的瞭解得到改善,我對此也得出了相同的結論。我的問題其實更加複雜一點:每次發生模糊事件時,日期都會減少1天。當這個事件發生時,我使用jQuery.datepicker.parseDate&jQuery.datepicker.formatDate方法在當地時間工作。但後來我保存parseDate返回的日期對象...我設法使用setUTCFullYear&new Date(dateV.getUTCFullYear(),dateV.getUTCMonth(),dateV.getUTCDate())在正確的位置對此進行排序。 – TiTi