我创建了一个日期变量,指向2014年7月9日
var date = new Date(2014, 6, 9);当我试图从这个日期获得时间时,我希望时间变量
var time = date.getTime(); 会给我2014年7月9日00:00的毫秒值。
相反它给了我
1404860400000这是2014年7月8日23:00的毫秒值。有人能解释一下为什么吗?
发布于 2014-09-03 15:45:30
你的代码在这里:
var date = new Date(2014, 6, 9);创建一个初始化为2014年7月9日午夜本地时间的Date实例。时间戳号(JavaScript的毫秒自-纪元和Unix的秒-自纪元)不受时区的影响,其值从1970年1月1日UTC午夜开始。
如果您要构造此日期:
var newDate = new Date(1404860400000);.你会有一个和你第一次约会完全相同的约会如果你问它所代表的那一刻的当地版本,它会说2014年7月9日午夜。
在上面的date和newDate中,如果你问它UTC版本的日期,你会看到它与午夜相抵(方向取决于你在英格兰格林威治西部或东部的位置)。在我写这篇文章的时候,几乎没有人在格林尼治标准时间,甚至我们英国人也没有,因为夏季时间。但对于大多数从未在格林尼治时间工作的人来说,这种价值总是会被抵消的。
如果你想要一个Date实例,给你2014年7月9日午夜(例如,不是当地时间),使用new Date(Date.UTC(2014, 6, 9))。Date.UTC为您提供UTC中给定日期的时间值,然后如果您将该时间值输入到new Date中,则会得到它的Date。
发布于 2014-09-03 15:45:27
1970年1月1日: getTime()返回自1970年1月1日以来的毫秒数,由这个Date对象表示的格林尼治时间是00:00。返回:自1970年1月1日起的毫秒数,由此日期表示的格林尼治时间00:00:00。
谷歌。
发布于 2014-09-03 15:46:35
Mozilla文档通常很好地解决了这样的文档问题。
https://stackoverflow.com/questions/25648502
复制相似问题