Javascript Date getTime()在不同的计算机上返回不同的值
根据,Javascript Date getTime()在不同的计算机上返回不同的值,javascript,date,Javascript,Date,根据,新日期(): 创建表示单个 瞬间。日期对象基于时间值,该时间值是 UTC 1970年1月1日以来的毫秒数 说到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的毫秒数,在不同的机器上给出不同的值
新日期()
:
创建表示单个
瞬间。日期对象基于时间值,该时间值是
UTC 1970年1月1日以来的毫秒数
说到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
?本地时区(或系统时间)是否会以某种方式影响此逻辑?是的,这是因为时区
使用:
new Date(Date.UTC(year, month, day, hour, minute, second))
可以根据特定UTC时间创建日期对象
文档中规定了: 注意:其中Date被称为具有多个 参数,指定的参数表示本地时间。如果UTC是 如果需要,请使用具有相同参数的新日期(Date.UTC(…)
console.log(新日期(新日期(1,0,1).setFullYear(1))
结果是周一1月1日00:00:00 GMT-0500(美国东部时间)
因此,是的,当您以这种方式创建日期时,时区会有所不同。@epascarello:在my local Node.js上,同样的语句给出:周一1月1日00:00:00 GMT+0100(中欧标准时间)。这不一样吗?纽约的午夜和华沙的午夜显然不一样…console.log(新日期(“周一1月1日00:00:00 GMT+0100(中欧标准时间)”)
isSun Dec 31 2000 18:00:00 GMT-0500(美国东部时间)
@jcaron:不一样,但规范中提到了UTC,而且与1970年1月1日00:00:00 UTC的差异应该是恒定的,无论时区如何,不是吗?事实上,我没有注意到an有点混乱。最好包含一个指向“文档”的链接;-)