2015-08-16 108 views
0

我通過Json收到了從MYSQL到Javascript的時間戳。在IE11中將MYSQL時間戳轉換爲JavaScript日期問題

現在我想對它做一些操作,如下所示。

    var ch = '2015-08-15 21:41:47.0'; // timestamp from mysql 
        var date = new Date(ch); // It worked fine on Chrome&Firefox 

但在IE中它返回NaN。我有GOOGLE了它,我發現日期字符串表示應該是8601

於是,我就使它看起來像new Date(1995, 11, 17, 3, 24, 0)爲我做了如下圖所示

   var tstamp = '2015-08-15 21:41:47.0'; 
       tstamp = tstamp.replace(/-|:|\s/g, ","); 
       var date = Date.parse(ch); 

但仍然是一個RFC2822或ISO我得到了NaN。任何幫助。

回答

0

嘗試拆分和重新安排

var tstamp = '2015-08-15 21:41:47.0'; 
    tstamp = tstamp.split(/[- :]/); 

    console.log(tstamp); 

或者你也可以在MySQL或服務器端腳本修改日期格式。

0

我自己就有這個確切的問題。 當試圖在ie11中使用new Date()時,默認的mysql日期格式返回錯誤lid Date, Invalid Date,但在firefox和chrome中正常工作。

答案其實很簡單。你只需要使mysql日期字符串看起來像一個iso格式的日期字符串。 ie11支持哪一種。

(秒,毫秒和Z參數是可選的)
iso格式YYYY-MM-DDTHH:mm:ss.sssZ

因此,而不是用你的mysql日期字符串是這樣的:

mysqlTime = "2017-08-01 10:19:08"; 
new Date(mysqlTime); 

您可以簡單地這樣的時間字符串前添加T

mysqlTime = "2017-08-01 10:19:08"; 
mysqlTime = mysqlTime.replace(/ /, "T"); 
new Date(mysqlTime); 

而現在它將很好地工作在IE9 +瀏覽器。 Internet Explorer 8標準模式和Quirks模式不支持ISO日期格式。 https://docs.microsoft.com/en-us/scripting/javascript/date-and-time-strings-javascript#ISO

希望這會有所幫助。

相關問題