在JavaScript中创建ISO日期对象(Create an ISO date object in

2019-07-21 03:21发布

我有一个蒙戈数据库建立。 创建MongoDB中一个新的日期对象创建ISO格式如日期对象: ISODate("2012-07-14T00:00:00Z")

我使用Node.js的连接到数据库蒙戈和查询数据库。 当过我创建一个新的Date对象( new Date()在javascript其创建JavaScript日期对象如: Wed Mar 06 2013 14:49:51 GMT-0600 (CST)

有没有一种方法使用JavaScript创建一个ISO Date对象,这样我可以直接发送对象到MongoDB的和执行日期查询

我能够在MongoDB中执行以下查询

db.schedule_collection.find({
  start_date: { '$gte': new Date(2012, 01, 03, 8, 30) }
})

但不能执行时,我在javascript日期对象发送从节点

MongoDB的食谱提供了一个示例蟒查询使用日期时间模块蒙戈数据库,但不提供任何示例使用JavaScript。

任何帮助表示赞赏。 请多关照

Answer 1:

尝试使用了ISO串

var isodate = new Date().toISOString()

参见: 在MDN方法定义 。



Answer 2:

在节点上,蒙戈司机会给你一个ISO字符串,而不是对象。 (例如: Mon Nov 24 2014 01:30:34 GMT-0800 (PST)所以,简单地将其转换为一个JS日期: new Date(ISOString);



Answer 3:

试试下面:

var temp_datetime_obj = new Date();

collection.find({
    start_date:{
        $gte: new Date(temp_datetime_obj.toISOString())
    }
}).toArray(function(err, items) { 
    /* you can console.log here */ 
});


Answer 4:

我解决了这个问题实例在node.js的一个新的Date对象:...

在Javascript中,发送日期()toISOString()来的NodeJS:...

var start_date = new Date(2012, 01, 03, 8, 30);

$.ajax({
    type: 'POST',
    data: { start_date: start_date.toISOString() },
    url: '/queryScheduleCollection',
    dataType: 'JSON'
}).done(function( response ) { ... });

然后使用ISOString来创建一个的NodeJS新的Date对象:..

exports.queryScheduleCollection = function(db){
    return function(req, res){

        var start_date = new Date(req.body.start_date);

        db.collection('schedule_collection').find(
            { start_date: { $gte: start_date } }
        ).toArray( function (err,d){
            ...
            res.json(d)
        })
    }
};

注:我使用Express和Mongoskin。



文章来源: Create an ISO date object in javascript