猫鼬总是保存错误的日期

时间:2021-01-09 16:29:18

标签: javascript node.js mongodb mongoose

我为猫鼬建立了一个模型,并在我的模型中添加了一个生日字段,例如:

birthdate: {
type: Date,
required: [true, "Please enter a birthdate"],
lowercase: true,
validate: [isDate, "Please enter a valid birthdate"],
}

但是当我使用生日字段将实例保存到我的数据库时:

"birthdate": "1998/04/01"

Mongoose 将其保存到 mongoDB 中,例如:

1998-03-31T21:00:00.000+00:00

日期有误吗?还有如何将正确的日期保存到我的数据库中?

2 个答案:

答案 0 :(得分:1)

问题不在于猫鼬。 This question 有足够的信息来解决您的问题。尝试用连字符替换斜线,因为大多数接受的格式是 YYYY-MM-DD。

答案 1 :(得分:0)

你可以查看这个documentation关于猫鼬日期的类型

更改日期格式并保存您的数据

var moment = require('moment-timezone');
var date = "1998/04/01"
var birthdate= moment(date , "YYYY/MM/DD").toDate();

对象 1 基于我的解决方案。

未转换的对象 2

/* 1 */
{
    "_id" : ObjectId("5ff9edc5373396410c493a62"),
    "birthdate" : ISODate("1998-04-01T00:00:00.000Z"),
    "date" : ISODate("2021-01-09T17:54:13.685Z"),
    "__v" : 0
}

/* 2 */
{
    "_id" : ObjectId("5ff9ee2ce1357a3b546d8573"),
    "birthdate" : ISODate("1998-03-31T19:30:00.000Z"),
    "date" : ISODate("2021-01-09T17:55:56.677Z"),
    "__v" : 0
}