为什么setTime会增加一小时?

3
这段代码的输出结果是1。为什么呢?因为setTime的参数是从1970年1月1日午夜开始增加的毫秒数,而不是0。

var d = new Date();

d.setTime(0);

console.log(d.getHours());


1
你现在在哪里?我猜你在英国夏令时区内,也就是+1小时的时差... - Jonas Wilms
1
哦,setTime 设置 整个时间对象为新的值。特别地,它将其设置为 "Unix 时间之初" - 1970 年 1 月 1 日。然后,getHours 将给出您所在时区修改过的小时数。 - VLAZ
1个回答

4

你可以做到这一点

    var d = new Date();
    
    d.setTime(0);
    
    console.log(d.getUTCHours());

问题是getHours返回的是本地时区的时间,如果要获取UTC时间,只需使用getUTCHours即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接