Mongoose以UTC格式将日期时间保存为ISODate("2017-04-25T09:40:48.193Z")
。如何将其时区更改为本地服务器时区。因此,每次从db中检索时,我都不需要更改时间。这是我的模型架构:
var MyModelSchema = new mongoose.Schema(
{
id: Number,
description: String,
created: {type: Date},
modified: {type: Date, default: Date.now},
},
{
collection: 'my'
}
);
PS:我知道最好以UTC格式节省时间,但我的要求是将其保存在指定的时区。
答案 0 :(得分:0)
即使认为以当地格式存储时间也不是一个好习惯,但这可能会有所帮助 -
date = new Date(); //2017-04-25T06:23:36.510Z
date.toLocaleTimeString(); //'11:53:36 AM'
localDate = ""+d; //'Tue Apr 25 2017 11:53:36 GMT+0530 (IST)'
将在保存对象的地方进行更改 -
var date = new Date(); //2017-04-25T06:23:36.510Z
date.toLocaleTimeString(); //'11:53:36 AM'
var localDate = ""+d; //'Tue Apr 25 2017 11:53:36 GMT+0530 (IST)'
var newModel = new ModelSchema()
newModel.description = 'Something';
newModel.created = locaDate;
newModel.save(function(err) {
if (err)
throw err;
return done(null, newUser);
});
答案 1 :(得分:0)
您可以保存用户时区,并在更新时为此新对象添加时区值。最好使用moment.js来转换它。 moment
答案 2 :(得分:0)
我想我有一个解决方案。在亚洲/加尔各答试试这个,可以在Mongoose中存储为日期类型
function getCurrentIndianDateTime(){
var moment = require('moment-timezone');
var time = moment.tz('Asia/Calcutta').format("YYYY-MM-DDTHH:MM:ss");
return new Date(time);
}