2013-06-11 94 views
1

這適用於Chrome,但不適用於Firefox。在Chrome 此日期格式有什麼問題

  • new Date("2013-06-03 17:09:06-0400") 
    
    • 正常工作給出了 '男' 在Firefox。

    我將不勝感激任何幫助。

  • +0

    解決方案相關/類似的問題(沒有真正的答案):http://stackoverflow.com/questions/3566125/problem-with-date-formats-in-javascript-with-different-browsers – Tessmore

    +0

    接受的答案在於問題對我的情況不起作用。我嘗試使用:new Date('2013-06-03 17:09:06-0400'.replace(/ \ -/g,'\ /')。replace(/ [T | Z]/g,'') )但它給了'無效的日期'。 – MickJ

    +0

    好吧,對不起:) – Tessmore

    回答

    2

    看看Mozilla開發者網絡的DateDate.parse文檔。

    具體地說,它指出:

    或者,日期/時間字符串可以是在ISO 8601格式。從JavaScript 1.8.5(Firefox 4)開始,支持ISO 8601的一個子集。例如,可以傳遞和解析「2011-10-10」(剛剛日期)或「2011-10-10T14:48:00」(日期和時間)。

    如果您在日期和時間之間拋出一個「T」你:

    new Date("2013-06-03T17:09:06-0400") 
    => Mon Jun 03 2013 14:09:06 GMT-0700 (PDT) 
    

    在這兩種瀏覽器和Mozilla,但你必須考慮在當前時區(因此PDT)的用戶系統。

    +0

    太棒了。添加'T'會發揮魔力。現在可以在Firefox和Chrome中使用。非常感謝。 – MickJ

    0

    根據我的經驗,只有可靠的方法來從JavaScript中的字符串構造日期對象是自己分析字符串,然後使用構造函數的版本,每個字段採用單獨的數字參數。

    基於字符串的構造函數太容易出現語言環境相關的分析錯誤。

    +0

    感謝您的回覆。我很欣賞這個建議。 – MickJ