2012-07-17 23 views
1

所以現在,它的上午9:23。我有一個UTC日期字符串表示當前日期,看起來像這樣"2012-07-17T09:23:27.75"Javascript日期格式化 - 由於夏令時導致出現一小時

我想在約會的對象,這樣我就可以顯示一個很好的格式化的日期,所以我:

var myDate = new Date("2012-07-17T09:23:27.75") 
// Gives --> Tue Jul 17 2012 10:23:27 GMT+0100 (GMT Daylight Time) 

,是因爲夏令時我正在接受一個小時問題。我可以看到myDate.getTimezoneOffset()給了我-60,讓我的日期真實反映當前正確時間的標準/最佳實踐方式是什麼?我剛剛輸入JavaScript日期地獄?

+1

日期是任何語言的地獄,而不僅僅是js。 – orlp 2012-07-17 08:37:20

+0

不......我確定它大多侷限於JavaScript和Java。我從來沒有在C#上度過這麼艱難的時光,C#一直很容易。 – dyslexicanaboko 2015-10-15 15:19:53

回答

2

嘗試momentjs.com。我真的很喜歡這樣的事情。

var myDate = moment("2012-07-17T09:23:27.75"); 

給你一個日期實例在你的時區(基本上配置在你的電腦上)。此外,momentjs有像「幾秒前」,「一個月前」等人性化的友好格式,...

日期真的是JS中的地獄(但不僅限於JS)。您可以做的最好的事情是始終只在UTC瀏覽器< - >服務器之間傳輸。然後在服務器上將它轉換爲你喜歡的時間格式,你顯然只需要保持一致。這樣我就能正確處理日期。

+2

喜歡這個庫,它讓我解析日期沒有小時問題,所以它是一個守護者:) – 2012-07-17 09:39:43

0

嘗試去掉「T」

我調試鉻一些日期時間格式的問題時,我發現,在控制檯

新的日期(「2016-04-16T15:15:00)返回星期六2016年4月16日16:15:00 GMT + 0100(GMT夏令時間)

新的日期( '2016年4月16日15:15:00')返回星期六2016年4月16日15: 15:00 GMT + 0100(GMT日光時間)