2

我有这个脚本用于处理日期:

time = "Mon May 20 13:19:13 +0000 2013"; /// sample value
var date = new Date(Date.parse(time));
var diff = (((new Date()).getTime() - date.getTime()) / 1000);
var day_diff = Math.floor(diff / 86400);

它在 Chrome 和 Firefox 上运行良好,但在 Internet Explorer 上不行(我已经用 IE10 检查过)。任何想法我怎样才能让它工作?

(我得到的时间字符串来自 twitter 提要)。

稍后编辑:示例http://jsfiddle.net/BUv5v/3/

4

1 回答 1

1

Date.parse() 不会Tue Dec 05 2006 16:47:20 GMT-0500在 IE中解析这种格式的日期。

一种解决方法是使用此函数在两个浏览器中解析该格式:

function parseDate(str) {
    var v = str.split(' ');
    return new Date(Date.parse(v[1] + " " + v[2] + ", " + v[5] + " " + v[3] + " UTC"));
}

因此,结束代码将是:

time = "Mon May 20 13:19:13 +0000 2013"; /// sample value
var date = parseDate(time);                     // <---------------- changed here
var diff = (((new Date()).getTime() - date.getTime()) / 1000);
var day_diff = Math.floor(diff / 86400);

测试小提琴(在 Chrome 27、Firefox 13 和 IE 9 中测试) :http : //jsfiddle.net/R3Ez9/

于 2013-05-31T14:58:18.857 回答