为什么moment.unix(0)返回1小时?

时间:2018-12-19 13:03:40

标签: javascript momentjs

var d = moment.unix(0);
console.log(d.hour());

我可能会看到这个错误,但是为什么moment.unix(0)表示1小时? 还是我做错了什么?

2 个答案:

答案 0 :(得分:3)

根据MomentJS Unix Timestamp (seconds) docs,您最有可能处于+1时区

  

注意:尽管Unix时间戳是基于UTC的,但是此函数在本地模式下创建了矩对象。如果需要UTC,则随后调用.utc(),如下所示:

     

var day = moment.unix(1318781876).utc();

答案 1 :(得分:0)

这是由于您的特定时区。如果打印时刻对象实例而不是日期部分,您将看到以下输出:

  

时刻(“ 1970-01-01T02:00:00.000”)

由于我的时区,在我的情况下为+2。

如果您改为这样做

var d = moment.unix(0).utc();
console.log(d);

你会得到

  

moment.utc(“ 1970-01-01T00:00:00.000 + 00:00”)

,这是GMT(UTC)时区。