2013-04-04 42 views
3

我有以下日期:如何將JavaScript日期轉換爲GMT毫秒?

var datestr = "11/11/2012 10:55" 

當我做到以下幾點:

var datems = new Date(datestr).getTime(); 

的毫秒我得到,因爲它似乎是未來更遠的時間似乎並沒有得到正確的毫秒。我如何將上面的「datestr」轉換爲毫秒(關於GMT)?

+1

'getTime' description - 「返回指定日期的數字值,自1970年1月1日起,UTC時間00:00:00(以前時間爲負)的毫秒數。」 - 問題可能是您的日期字符串未被正確解析。當你console.log(new Date(datestring));'? – Ian 2013-04-04 20:22:37

+0

我已經刪除了我的答案,因爲我正在處理錯誤的問題。你接收的毫秒數值是多少? @Jonathon Lonowksi在他的回答中指出,我懷疑這是時區問題。 – Default 2013-04-04 20:50:10

+0

可能的重複[如何將字符串轉換爲日期時間與JavaScript格式規範?](http://stackoverflow.com/questions/476105/how-can-i-convert-string-to-datetime-with-format-規格 - 在JavaScript的) – 2013-04-05 00:12:25

回答

2

一種可能性是,Date假設當地時間如果字符串不指定時區。

如果你所有的日期字符串都在該格式,您可以在解析時附加一個時區到他們:

var datems = new Date(datestr + " UTC").getTime(); 

或者你將不得不使用local offset找到UTC:

var localDate = new Date(datestr); 
var datems = localDate.getTime() - (localDate.getTimezoneOffset() * 60 * 1000);