Javascript纪元日期不正确

Javascript纪元日期不正确,javascript,date,Javascript,Date,我正在做一些javascript日期的事情,我执行了以下操作: console.log(new Date(0)); 我原以为会看到“尼克斯时代”,但奇怪的是,我却回来了: Wed Dec 31 1969 19:00:00 GMT-0500 (Eastern Standard Time) 发生了什么事?我找不到任何资源来解释它,但这个“错误”是由于我的时区(据我所知) 我的时区是GMT-0500,比UTC时间晚5小时。将5小时添加到1969年12月31日星期三19:00:00,您将获得历元(1

我正在做一些javascript日期的事情,我执行了以下操作:

console.log(new Date(0));
我原以为会看到“尼克斯时代”,但奇怪的是,我却回来了:

Wed Dec 31 1969 19:00:00 GMT-0500 (Eastern Standard Time)

发生了什么事?

我找不到任何资源来解释它,但这个“错误”是由于我的时区(据我所知)


我的时区是
GMT-0500
,比UTC时间晚5小时。将5小时添加到1969年12月31日星期三19:00:00,您将获得历元(
1970年1月1日星期四00:00:00

您正在设置内部时间值,即UTC,但看到一个基于系统设置的字符串,该字符串可能有UTC-05:00的偏移量

ECMAScript规范解释了日期构造函数和实例是如何工作的。鉴于:

new Date(0)
日期构造函数是用一个参数()调用的,因此它创建了一个日期实例,根据参数的类型设置了它的内部时间值。由于该值是一个数字,因此时间值设置为该数字

时间值是从1970-01-01T00:00:00Z开始的以毫秒为单位的偏移量。请注意,它是基于UTC的

console.log的行为完全依赖于实现,因此您可以从中获得:

console.log(dateInstance);
取决于主机。但是,大多数调用对象的toString方法,该方法根据主机系统()的时区设置返回依赖于实现的字符串。也就是说,一个“本地”时间


时区偏移量可以通过使用来确定。它以分钟为单位,与ISO 8601偏移量的意义相反(例如UTC-05:00将为+300)。如果要获取表示内部时间值而不带偏移量的日期字符串,请使用。

好的,它会在输出中告诉您正在查看特定时区。看看
(新日期(0)).toISOString()
没有任何资源解释它,因为它只是普通的旧时区:)