2016-08-03 83 views
0

這個問題讓我發瘋。雖然我的代碼在Firefox和Google chrome上運行良好,但它在Windows 10上的Internet Explorer上失敗。但這個問題真的很奇怪。Internet Explorer中的日期問題無效

// If I hard code this value, it works fine, 
// But the same thing generated by the program fails! 
//var dateStr = '2016-08-04 01:38:49' 

alert(dateStr) 

var a = dateStr.split(" "); 
d  = a[0].split("-"); 
t  = a[1].split(":"); 

return new Date(d[0],(d[1]-1),d[2],t[0],t[1],t[2]); 

變量dateStr是由我的程序填補,並與它返回的日期總是出來是無效的。但是,如果我從警報框中複製dateStr的值,並稍後用它對值dateStr進行硬編碼,則返回有效日期。到底是怎麼回事?我在這裏錯過了什麼嗎?我懷疑,這必須做一些與Unicode字符串和東西。它可能是什麼?

回答

0

我認爲問題在於,你的字符串包含一些隱藏的字符以支持例如從右到左,...

因此,你輸入參數到新的Date()cntr是無效的。

請注意:如果您使用由當前系統創建的dateTime字符串,這可能會導致問題,因爲您的解析器僅支持YYYY-MM-DD hh:mm:ss,這是基於系統本地化的格式,可能會完全返回不同的字符串,如果您的本地化是中文或韓文