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-0500IEでは、この形式の日付は解析されません。

回避策は、この関数を使用して、両方のブラウザーでその形式を解析することです。

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 に答える