2014-02-13 42 views
2

不工作的JavaScript函數的日期我有這樣的代碼,我在鉻在Firefox

var time = new Date("2014-02-11 19:30:00" + ' UTC'); 

運行它,這讓我回正是我需要的,它把我傳遞給我的本地日期。即使這樣一個不完全一樣的東西

var time = new Date("2014-02-11T19:30:00"); 

的問題是,第一功能沒有在Mozilla工作,第二個不轉換的日期到我的本地時區。我需要在兩位探險家(實際上都是他們)中進行轉型,但至少在這兩者中工作會很好。

+1

這兩個剪輯不會做同樣的事情,除非你住在英國......任何支持JSON的瀏覽器都能正確解析ISO格式的「2014-02-13T18:33:27.872Z」。您可以將日期分成幾部分,或者在解析之前將字符串按照ISO格式進行處理。 – dandavis

+0

對不起,我複製並粘貼了一個新的文檔,他們完全相同(至少在谷歌瀏覽器中)。我來自委內瑞拉。 –

+0

也許因爲那個特定的輸入格式不是標準的,你的瀏覽器正在將它變成本地日期,試圖恢復它所能提供的任何信息。 GIGO。重寫我的第一個評論爲「不應該」... – dandavis

回答

1

這應該在兩個工作:

注:TZD =時區指示符(Z或+ HH:MM或-hh:毫米)

new Date("1994-11-05T13:15:30Z")

+0

是的!這對於兩個探索者都有效,並且也轉換爲當地時區。非常感謝! –

+0

/我得到了一個「兩個探險家」的踢出... – dandavis

+0

很高興我能幫上忙!「探險家」很可怕。大聲笑 – lshettyl

0

創建代表單個時刻的JavaScript Date實例。日期對象基於時間值,該值是自1970年1月1日UTC以來的毫秒數。

Constructor 

new Date(); 
new Date(value); 
new Date(dateString); 
new Date(year, month [, day, hour, minute, second, millisecond]); 

這是definition of the Date object使用值0-11月現場。

我相信使用String的構造函數是依賴於系統的(更不用說區域設置/時區相關),因此您可能最好使用指定年/月/日作爲單獨參數的構造函數。

順便說一句,在Firefox,

new Date("04/02/2008"); 

爲我工作得很好 - 它會解釋斜槓,而不是連字符。我認爲這證明了我的觀點,即使用String來構造Date對象是有困難的。使用顯式值月/日/年,而不是:

new Date(2008, 3, 2); 
+0

謝謝,雖然這解決了在瀏覽器中工作而不是其他功能的問題,但它並沒有轉換到本地時區(這正是我真正需要的)。 –

+0

解析標準日期字符串的一大優點是時區信息包含在數字中...... – dandavis

+1

哦,我想我明白你的意思了,如果這是我的想法,那麼它對我不起作用的原因是因爲我在服務器上保存轉換爲UTC的日期,然後當我想將其顯示給用戶時,我必須將此UTC日期轉換爲用戶時區。所以我提供給構造函數的dateString是UTC,我希望它在localtimzone中。對不起,很長的解釋,但我認爲這就是你的意思。 –