根据MDN,new Date()
:
创建一个表示单个的JavaScript Date实例 这一刻。日期对象基于时间值 自1970年1月1日UTC以来的毫秒数
涉及getTime()
:
返回指定日期的数值作为数字 自1970年1月1日00:00:00 UTC以来的毫秒数(之前为负数) 次)。
为什么声明:
new Date(new Date(1, 0, 1).setFullYear(1)).getTime();
,假设返回从1970年1月1日00:00:00 UTC到01/01/0001 12:00:00 AM的毫秒数,在不同的机器上给出不同的值,例如: -62135600400000
和-62135596800000
?本地时区(或系统时间?)是否会以某种方式影响此逻辑?
答案 0 :(得分:2)
在文档中指定:
注意:Date被称为具有多个构造函数的构造函数 参数,指定的参数代表本地时间。如果是UTC 期望的,使用具有相同参数的新日期(Date.UTC(...))。
答案 1 :(得分:1)
是的,这是因为时区。
使用:
new Date(Date.UTC(year, month, day, hour, minute, second))
您可以从特定的UTC时间创建日期对象。