浏览器解析日期的方式不同

时间:2015-03-21 23:44:18

标签: javascript google-chrome date datetime firefox

有人可以向我解释为什么我将以下内容粘贴到Chrome和Firefox的控制台中我会得到不同的结果

new Date("2014-12-01")

Chrome中的输出:

Sun Nov 30 2014 18:00:00 GMT-0600 (CST)

Firefox中的输出:

Date 2014-12-01T00:00:00.000Z

是的,你正确阅读。 Chrome将其渲染为前一天。

Chrome console screenshot

2 个答案:

答案 0 :(得分:2)

每个浏览器都会在控制台中显示日期。

在您的情况下,Firefox似乎使用了Date.prototype.toISOString

new Date("2014-12-01").toISOString(); // "2014-12-01T00:00:00.000Z"

Chrome似乎使用了Date.prototype.toString。就我而言,在Chrome和我的时区,我得到了

new Date("2014-12-01");
    // Mon Dec 01 2014 01:00:00 GMT+0100 (Hora estándar romance)
new Date("2014-12-01").toString();
    //"Mon Dec 01 2014 01:00:00 GMT+0100 (Hora estándar romance)"

但请注意,Chrome不会在前一天呈现它。只是它使用GMT-0600

Date.parse("Sun Nov 30 2014 18:00:00 GMT-0600 (CST)"); // 1417392000000
Date.parse("2014-12-01T00:00:00.000Z");                // 1417392000000

答案 1 :(得分:1)

我认为Chrome的阅读与您的区域设置有关,因为它会将GMT条目转换为您的时区,并进行必要的调整,无论是按原样减去,添加还是保留。