我有一个以这种格式显示日期字符串的元素:
    <div> ListDate: 2014-11-22 00:00:00.0 </div>
我有一个捕获该文本的变量,现在我要除去日期字符串以外的所有字符,并尝试将其转换为日期,以便对它进行一些数学运算。我的代码在Chrome中工作正常,但始终在FF和Safari中返回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

09-18 14:22