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

时间:2014-09-03 15:41:56

标签: javascript time

我创建了一个指向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的毫秒值。 有人可以解释一下为什么会这样吗?

3 个答案:

答案 0 :(得分:3)

您的代码在这里:

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

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

如果您要构建此日期:

var newDate = new Date(1404860400000);

...你的日期与第一个完全相同。如果您询问它所代表的当地版本,那就是2014年7月9日的午夜。

在上面的datenewDate中,如果你问它日期的 UTC 版本,你会看到它从午夜偏移(方向取决于哪里你在英国格林威治的西边或东边。在我写这篇文章的那一刻,几乎没有人参加GMT,因为夏天的时候,通常不会是英国人。但对于大多数从未参加过GMT的人来说,这个价值总会被抵消。

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

答案 1 :(得分:0)

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

谷歌。

答案 2 :(得分:-1)

Mozilla文档通常很好地涵盖了类似的文档问题。

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