如何在Sails.js或Express.js中设置本地时区

Ale*_*exB 6 timezone datetime timestamp express sails.js

当我在sails上创建或更新记录时,请在updateAt上写下:

updatedAt: 2014-07-06T15:00:00.000Z
Run Code Online (Sandbox Code Playgroud)

但是我在GMT + 2小时(本赛季)并且更新在16:00进行.

我的模型中声明的所有日期时间字段都存在同样的问题.

如何在Sails(或最终Express)上设置正确的时区?

Edo*_*yde 10

我经过几个小时的研究后处理问题的方式:

process.env.TZ = 'UTC'; //whatever timezone you want

config/bootstrap.js


sgr*_*454 1

试图通过在服务器上设置时区来解决问题有点短视。如果你搬家怎么办?或者其他国家/地区的某人访问您的应用程序?重要的是数据库中的时间戳有一个时区编码,以便您可以在前端转换为正确的时间。也就是说,如果你这样做:

new Date('2014-07-06T15:00:00.000Z')
Run Code Online (Sandbox Code Playgroud)

在浏览器控制台中,无论您身在何处,您都应该看到它显示正确的日期和时间。Sails 使用默认值updatedAtcreatedAt字段自动为您编码此时间戳;只需确保在将任何自定义时间戳保存到数据库时始终使用时区,就可以了!