首页 文章

Nodejs Mongoose:尝试以UTC时区保存日期,但保存在本地时区

提问于
浏览
0

我是nodejs和mongodb的新手 . 我正在使用mongoose用于mongodb,每当我尝试将日期保存到数据库时,我都会面临与问题相关的日期,它会自动转换为本地时区,但不应该发生 .

我已将Node timezone "UTC"设置为.env文件,当我执行console.log(new Date())时它正在工作,它根据UTC返回当前日期时间 . 但当我试图将它保存到mongoose时,它转换为本地时区 . 我已尝试使用 Date 字段以及 timestamps : true 它将两者都转换为本地时区 .

我的代码是 // Mongoose model

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var activitySchema = new Schema({
    'userId': Number,
    'data': Array,
    'otherDetails': Array,
    'date':Date
}, {
    timestamps: false
});
module.exports = mongoose.model('activity', activitySchema);

//保存代码

let na = new Date().toISOString().replace(/T/, ' ').replace(/\..+/, '')+".100";
 var activity = new activityModel({
            userId : req.user.user_id,
            otherDetails : req.body.otherDetails,
            data : req.body.data,
            date : na.toString()

        });

        activity.save();

1 回答

  • 0

    根据this post中的答案,似乎Mongo会自动以UTC格式保存所有日期 . 因此,您需要在某处进行转换以转换为您要查找的时区 . 或者,您可以将日期存储为字符串,并在从DB读取后将其解析为日期 .

相关问题