moment.js如何显示东八区时间?
发布于 9 年前 作者 snowinmay 34568 次浏览 最后一次编辑是 8 年前 来自 问答

刚刚接触nodejs,写了一个小程序。 在ejs模版中调用: moment(docs[i].createdAt).format(‘YYYY-MM-DD HH:mm:ss’) 在本地显示时间是正确的: B7362045-A782-4126-BF35-773CF26129DB.png 在服务器上显示的时间和本地相差8小时: 如何用moment.js来显示东八区的时间呢? BCA441CC-E399-4157-8E43-F52F806683B4.png

3 回复

Unless you specify a timezone offset, parsing a string will create a date in the current timezone.

moment("2010-10-20 4:30",       "YYYY-MM-DD HH:mm");   // parsed as 4:30 local time
moment("2010-10-20 4:30 +0000", "YYYY-MM-DD HH:mm Z"); // parsed as 4:30 UTC

解决方法:

先转成utc时间,再指定时区。 代码: <%= moment(docs[i].createdAt).utc().zone(-8).format(‘YYYY-MM-DD HH:mm:ss’) %>

程序只需要支持一个时区的用户的话,可以把服务器的时区改成你的时区。

多时区的话,要记录用户所在时区,时间显示时加时区offset。

回到顶部