Javascript String to Date 适用于 Chrome,不适用于 FF 或 Safari

Javascript String to Date works in Chrome, not FF or Safari

我有一个元素以这种格式显示日期字符串: <div> ListDate: 2014-11-22 00:00:00.0 </div> 我有一个捕获该文本的变量,现在我正在剥离除日期字符串以外的所有内容,并尝试将其转换为日期,以便我可以对其进行一些数学运算。我的代码在 Chrome 中运行良好,但在 FF 和 Safari 中总是 returns NaN。这是 javascript:

var listDate = " ListDate: 2014-11-22 00:00:00.0 ";
listDate = listDate.replace('ListDate:', '');
listDate = $.trim(listDate);
listDate = Date.parse(listDate);

我正在 Firebug 观看它,并且在 Date.parse() 之前它的表现符合预期。我尝试了 this thread 上显示的解决方案,但仍然没有成功。有任何想法吗?我无法控制 html,它来自 Web 服务。

完整的 ISO8601 格式 (IIRC) 要求在该字符串的日期和时间部分之间有一个大写字母 "T",例如""2014-11-22T00:00:00.0"" https://en.wikipedia.org/wiki/ISO_8601(因此我建议始终添加 T分隔符。

例如以下代码将在某些浏览器中解析为 NaN

var myAlmostISODate = "2014-11-22 00:00:00.0";
console.log("Date: " + Date.parse(myAlmostISODate));
//IE11: NaN
//Firefox: 1416632400000
//Chrome: 1416632400000