关于getTime()的返回值的问题

Issue about the return value of getTime()

本文关键字:返回值 问题 getTime 关于      更新时间:2023-09-26

我创建了一个日期变量,指向2014年7月9日

 var date = new Date(2014, 6, 9);

当我试图从这个日期获得时间时,我预计时间变量

 var time = date.getTime(); 

会给我2014年7月9日00:00:00的毫秒值。

相反,它给了我

1404860400000

这是2014年7月8日23:00:00的毫秒值。有人能解释一下为什么吗?

此处的代码:

var date = new Date(2014, 6, 9);

创建一个Date实例,该实例初始化为2014年7月9日午夜的本地时间。时间戳数字(JavaScript自Epoch以来的毫秒数和Unix自Epch以来的秒数)不受时区的影响,该值自1970年1月1日午夜UTC起。

如果你要构建这个日期:

var newDate = new Date(1404860400000);

你会有一个和你第一次约会完全一样的约会。如果你问它所代表的时刻的当地版本,它会说是2014年7月9日午夜。

在上面的datenewDate中,如果你问它日期的UTC版本,你会发现它偏离了午夜(方向取决于你在哪里,英国格林威治的西部或东部)。在我写这篇文章的时候,几乎没有人在格林尼治标准时间,甚至我们英国人也不在,因为夏天。但对于大多数从不在格林尼治标准时间的人来说,价值总是会被抵消的。

如果您希望Date实例在2014年7月9日UTC(例如,而非当地时间)提供午夜,请使用new Date(Date.UTC(2014, 6, 9))Date.UTC以UTC为单位为给定日期提供时间值,然后如果将该时间值输入new Date,则会得到它的Date

1970年1月1日:getTime()返回自1970年1月1日00:00:00 GMT以来由该Date对象表示的毫秒数。返回:自1970年1月1日00:00:00 GMT以来由该日期表示的毫秒数。

谷歌。

Mozilla文档通常很好地涵盖了这样的文档问题。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date