10

このフィドルでは、値

     new Date(val[0]).getTime()

Chrome と IE では異なります。クロムの値は適切なようです。IE で値を正しくするための回避策はありますか。

コード:

$(function () {
        var text="";
    $.each($.parseJSON("[{\"name\":\"critical\",\"data\":[[\"2013-10-01T00:00:00\",830],[\"2013-10-02T00:00:00\",257],[\"2013-10-03T00:00:00\",160],[\"2013-10-04T00:00:00\",200]]},{\"name\":\"normal\",\"data\":[[\"2013-10-01T00:00:00\",24],[\"2013-10-02T00:00:00\",20],[\"2013-10-03T00:00:00\",13],[\"2013-10-04T00:00:00\",30]]},{\"name\":\"ignore\",\"data\":[[\"2013-10-01T00:00:00\",1732],[\"2013-10-02T00:00:00\",1220],[\"2013-10-03T00:00:00\",1120],[\"2013-10-04T00:00:00\",1500]]}]"), function (key, value) {
            $.each(value.data, function (key, val) {
                text += "["+(new Date(val[0]).getTime()).toString()+","+ val[1].toString()+"]";
            });
        }
    );
    $("#container").html(text);
    });
4

1 に答える 1

15

各ブラウザは、部分的な ISO 形式に対して異なるタイムゾーンを想定しています。Chrome はそれらが UTC であると想定していますが、IE はそれらがユーザーに対してローカルであると想定しています。

console.log(new Date("2013-10-01T00:00:00").getUTCHours());
// Chrome: 0
// IE 10:  5 (for US/Central)

UTCなどの形式にタイムゾーンが含まれている場合はZ、同じものを解析する必要があります。

console.log(new Date("2013-10-01T00:00:00Z").getUTCHours());
// Chrome: 0
// IE 10:  0

console.log(new Date("2013-10-01T00:00:00-04:00").getUTCHours());
// Chrome: 4
// IE 10:  4

また、必要に応じて、解析の直前に追加できます。

new Date(val[0] + 'Z')
于 2013-10-24T13:54:41.080 に答える