使用Mongoose解析并保存Javascript日期对象

时间:2014-01-27 19:49:28

标签: javascript node.js mongodb mongoose

我有以下格式提供的每小时日期数据,我需要将其解析为Javascript日期对象,然后保存到MongoDB中。

这是我的模型,指定日期对象:

var DateObjectSchema = new Schema({
    created: {
        type: Date,
        default: Date.now
    },
    date: {
        type: Date,
        required: true,
        unique: true
    }
});

以下是每小时日期数据的格式:

String "01/26/2014 16"

这是我尝试过的,但日期保存不正确:

var dateobject = new DateObject({
     date:    new Date("01/26/2014 16" + ":00:00")
});
dateobject.save();

例如,“01/26/2014 24”被保存到数据库中:

date: "1970-01-01T00:00:00.000Z"

此“01/26/2014 14”已保存到数据库中:

date: "2014-01-26T22:00:00.000Z"

如果是时区问题,请注意我希望所有时间都设置在 GMT - 7:00

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要将日期字符串解析为日期对象。这是从您指定的模式中执行此操作的一种方法:

var yourInputString = "01/26/2014 16";
var dateHr=yourInputString.split(/\s/); //Gives you the date and hr fields
var date=dateHr[0].split(/\//); //Process the date field by splitting on /
var parsedDate = new Date(date[2],date[0]-1,date[1],dateHr[1]);

现在你应该能够使用你需要的parsedDate。

PS:date[0]-1表示月份字段,因为月份是基于0的索引。