我创建了一个指向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的毫秒值。 有人可以解释一下为什么会这样吗?
答案 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日的午夜。
在上面的date
和newDate
中,如果你问它日期的 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