javascript - Nodejs Mongoose:尝试在 UTC 时区保存日期,但在本地时区保存
问题描述
我是 nodejs 和 mongodb 的新手。我正在为 mongodb 使用 mongoose,每当我尝试将日期保存到数据库中时,我都会面临与问题相关的日期,它会自动转换为本地时区,但它不应该发生。
我已将节点时区“UTC”设置为 .env 文件,当我执行 console.log(new Date()) 时它正在工作,它根据 UTC 返回当前日期时间。但是当我试图将它保存到猫鼬时,它会转换为本地时区。我已经使用Date字段以及时间戳尝试了它:它确实将两者都转换为本地时区。
我的代码是 // 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();
解决方案
根据这篇文章中的答案,似乎 Mongo 会自动以 UTC 格式保存所有日期。因此,您需要在某处进行转换以转换为您正在寻找的时区。或者,您可以将日期存储为字符串,并在从数据库读取后将其解析为日期。
推荐阅读
- swift - 即使在注销 iOS swift 4 后,fb login 也不会要求提供登录凭据
- php - 如何将自定义函数添加到 smarty 扩展 yii2
- python - 在 RaspberryPi 上以 Python 运行 FaceRecognition 代码时没有获得名为“picamera”的模块
- node.js - 从自定义路径预加载 env 文件
- android - 将视图添加到没有 XML 的视图
- configuration - 如何配置 Tomcat 以使用 /webapps/myapp 之类的上下文路径
- python - Django:创建表单以添加相关数据
- haskell - 仅小写字符的数据类型
- php - Laravel 的 Queue withChain,不能让它们按顺序运行
- reactjs - Reactjs TypeError:无法读取未定义的属性“toLowerCase”(react-router-config)