【问题标题】:Parse and Save Javascript Date Objects With Mongoose使用 Mongoose 解析和保存 Javascript 日期对象
【发布时间】:2014-01-28 04:00:04
【问题描述】:

我有以下格式的每小时日期数据,我需要将其解析为 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

谢谢!

【问题讨论】:

  • 如果您需要对时区进行日期操作,则值得研究 Moment.js 和 Moment Timezone 而不是创建 Date 对象。 Moment 界面更高级,对开发人员更友好 ;-)。

标签: javascript node.js mongodb mongoose


【解决方案1】:

您需要将日期字符串解析为日期对象。这是您指定的模式的一种方法:

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 的索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 2012-04-03
    • 2011-08-05
    • 2011-11-23
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多