浏览器解析日期的方式不同
Difference in how browsers parse dates
有人可以向我解释为什么如果我将以下内容粘贴到 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 将其呈现为一天前。
每个浏览器都会在控制台中显示所需的日期。
在你的情况下,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
我认为 Chrome 的读数与您的区域设置有关,因为它将 GMT 条目转换为您的时区并进行必要的调整,无论是减去、添加还是保持原样。
有人可以向我解释为什么如果我将以下内容粘贴到 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 将其呈现为一天前。
每个浏览器都会在控制台中显示所需的日期。
在你的情况下,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
我认为 Chrome 的读数与您的区域设置有关,因为它将 GMT 条目转换为您的时区并进行必要的调整,无论是减去、添加还是保持原样。