在javascript中创build一个ISOdate对象

我有一个mongo数据库设置。 在mongoDb中创build一个新的date对象以ISO格式创build一个date对象,例如: ISODate("2012-07-14T00:00:00Z")

我正在使用node.js连接到mongo数据库并查询数据库。 当我创build一个新的date对象( new Date() )在JavaScript中它创build一个javascriptdate对象例如: Wed Mar 06 2013 14:49:51 GMT-0600 (CST)

有没有办法在JavaScript中创build一个ISOdate对象,以便我可以直接发送对象到mongoDb并执行date查询

我可以在mongoDb中执行下面的查询

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

但是当我从节点发送javascriptdate对象时不能执行

mongodb食谱提供了一个python示例来查询使用datetime模块的mongo数据库,但是没有提供任何使用javascript的例子。

任何帮助表示赞赏。 提前感谢你

尝试使用ISOstring

 var isodate = new Date().toISOString() 

另请参阅: MDN上的方法定义 。

在节点中,Mongo驱动程序会给你一个ISOstring,而不是对象。 (例如: Mon Nov 24 2014 01:30:34 GMT-0800 (PST) )所以,简单地把它转换成js Date by: new Date(ISOString);

试试下面:

 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 */ }); 

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

在JavaScript中,将Date()。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中创build一个新的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。