javascript - Chrome 和 IE 中 Date() 的不同值

标签 javascript jquery internet-explorer google-chrome

在此fiddle , 的值

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

在 Chrome 和 IE 中有所不同。 chrome 值似乎是正确的,是否有解决方法可以使 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);
    });

最佳答案

每个浏览器都假设 partial ISO formats 的时区不同-- 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')

关于javascript - Chrome 和 IE 中 Date() 的不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19567127/

相关文章:

尽管 ruby​​ 条件语句执行 Javascript

jquery - 如何在 Laravel 上使用 Chosen JQuery 插件

javascript - 多个存储元素 .css()

javascript - jQuery 在 IE 中缓慢地在 TR 上执行鼠标悬停

html - 印度卢比符号

html - 在IE中显示 '''

javascript - 我应该忽略 React 警告 : Input elements should not switch from uncontrolled to controlled?

javascript - “Private” Javascript 中的属性继承

JavaScript 和 HTML 表单元素

jquery - 在单元格中的数据上方显示一些数据