我知道有很多关于日期/时间存储和格式化的问题,但我很难找到正确的方法 . 我的应用程序是一个Node.js应用程序,Express使用mongoose和MongoDB后端 . 我正在使用moment.js格式化我的日期/时间 .
有问题的架构如下:
const stateSchema = new mongoose.Schema({
changed: {
type: Date,
default: new Date()
}
});
基于docs,我希望默认情况下日期存储在UTC中,但我看到了:
changed: 2018-08-15 17:26:14.499
我用(哈巴狗)的东西显示日期/时间:
p= `Changed: ${moment(state.changed).format('MMMM Do YYYY, h:mm:ss a')}`
在localhost上,该应用程序显示“2018年8月15日,下午5:26:14”,但在托管的Heroku应用程序中,我得到“2018年8月15日,下午10:26:14” . 我期待“2018年8月15日,下午5:26:14”,因为我在同一时区打开Heroku应用程序,但看起来它给了我服务器时区 .
我该怎么做才能确保日期/时间显示在客户的本地时区?
1 回答
我认为这就是答案 . 它给了我localhost的错误时间,但无论我在哪里,都应该是托管应用程序上的正确时间 .
向架构添加偏移量:
然后在显示时减去偏移量: