我是nodejs和mongodb的新手。我正在使用mongoose用于mongodb,每当我尝试将日期保存到数据库时,我都会面临与问题相关的日期,它会自动转换为本地时区,但不应该发生。
我已设置节点时区" UTC"进入.env文件,它在我执行console.log(new Date())时工作,它根据UTC返回当前日期时间。但当我试图将它保存到mongoose时,它转换为本地时区。我已经尝试了日期字段以及时间戳:true 它将两者都转换为本地时区。
我的代码是 // Mongoose模型
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();
答案 0 :(得分:0)
根据this post中的答案,似乎Mongo会自动以UTC格式保存所有日期。因此,您需要在某处进行转换以转换为您要查找的时区。或者,您可以将日期存储为字符串,并在从DB读取后将其解析为日期。