2014-10-03 32 views
0

我已經看到,只有在使用斜槓輸入字符串以分隔月/日/年時,Firefox才能成功解析日期對象。 SO reference。但是,這樣做:Firefox甚至在格式正確的情況下拒絕解析日期

var given_input = "2014-09-26 08:00:28.787618"; 
var d = given_input.replace(/-/g, "/"); 

var myDate = new Date(d); //Date {Invalid Date} 

它在Chrome中工作。我究竟做錯了什麼?

+0

「* Firefox中使用斜槓分隔月/日/年*餵食字符串時,只有成功地解析日期對象」 - 這是不完全正確;實際上,[ECMAScript 5中唯一必需的*日期格式是'YYYY-MM-DDTHH:mm:ss.sssZ'](http://www.ecma-international.org/ecma-262/5.1/#sec -15.9.1.15),它使用破折號。但是,似乎使用短劃線可能需要「T」日期/時間分隔符,而不是空格。 – apsillers 2014-10-03 15:32:12

+0

請注意''1.您提到的問題已超過2年,_FireFox_每6周發佈一個新版本,即我們現在已經超過17個版本。 '2。'這個問題是關於'Date.parse'而不是'New Date' – 2014-10-03 15:37:09

+0

@PaulS。是的,我現在看到了。無論如何,問題在於秒鐘。顯然只有兩位小數是允許的。謝謝。 – 1252748 2014-10-03 15:38:14

回答

0

問題在於,結果是秒數末尾有兩位以上的小數位。它不遵循@apsillers指定的格式。這工作,如果你不計較時間,僅日期:

input_date.replace(/(\d{4})-(\d{2})-(\d{2}).*$/g, "$1/$2/$3");