首页 文章

如何在特定时区保存猫鼬日期时间

提问于
浏览
2

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格式节省时间,但我的要求是将其保存在指定的时区 .

3 回答

  • 0

    您可以保存用户时区,并在更新时将时区值添加到此新对象 . 最好使用moment.js来转换它 . moment

  • 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);
    });
    
  • 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);
    }
    

相关问题