当我尝试使用猫鼬在mongodb中存储某些东西时,我遇到了一个时区问题。错误的时区nodejs mongoose
我创造了这样一个模式:
var userSchema = new mongoose.Schema({
name: {
type: String
},
created_at: {
type: Date
}
});
它找到一个日期范围($ GTE和$ LTE)的用户是在我的代码很重要。
user.created_at = new Date();
在我的数据库与此用户错误的时区创建:
问题创建用户时,会发生。
我曾试图用 “moment-timezone.js”,如:
user.created_at = moment().tz("America/Belem").format();
与时区仍然在MongoDB中是相同的,但是当我控制台日志中的问题。 “那一刻()TZ(” 美洲/贝伦“)。 format()“我在数据库中获得了正确的时区,但它出错了,所以我认为问题是使用mongoose键入Date,,因为它节省了UTC时间,但我想在当地时间。
我试图使用类型字符串,而不是类型日期在我的架构,我得到了正确的时区与“时间timezone.js”,但我的查询$ gte和$ lte找到用户没有工作了。
在这个讨论中here问题是一样的,但他们说服务器时区更改为UTC,但他们没有说明如何去做。我试图this来改变服务器的时区,但它不适用于我(我使用的是Windows 10),我认为这不是正确的道路。
请帮我解决这个问题。告诉我解决这个问题的最好方法。
谢谢。
请看看这个。您应该始终尝试使用UTC存储时间。 http://stackoverflow.com/a/40425115/2683814 – Veeram
首先感谢您的回复。我试过你的解决方案,但没有奏效。 :'( –
你在db中看到了什么?现在的日期如何存储? – Veeram