mongodb 在javascript中创建ISO日期对象

tjvv9vkg  于 2023-02-03  发布在  Go
关注(0)|答案(5)|浏览(147)

我有一个mongo数据库设置。创建一个新的日期对象在mongoDb创建一个日期对象在ISO格式例如:ISODate("2012-07-14T00:00:00Z")
我正在使用node.js连接到mongo数据库并查询数据库。当我在javascript中创建一个新的日期对象(new Date())时,它会创建一个javascript日期对象,例如:Wed Mar 06 2013 14:49:51 GMT-0600 (CST)
有没有办法在javascript中创建一个ISO日期对象,这样我就可以直接将该对象发送到mongoDb并执行日期查询
我可以在mongoDb中执行以下查询

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

但当我从节点发送javascript日期对象时无法执行
MongoDB Cookbook提供了一个使用Datetime模块查询Mongo数据库的Python示例,但没有提供任何使用JavaScript的示例。
任何帮助我都感激不尽。先谢了

ajsxfq5m

ajsxfq5m1#

尝试使用ISO字符串

var isodate = new Date().toISOString()

另请参见:method definition at MDN

r6l8ljro

r6l8ljro2#

请尝试以下操作:

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

3htmauhk3#

在节点中,Mongo驱动程序会给予你一个ISO字符串,而不是对象。(例如:Mon Nov 24 2014 01:30:34 GMT-0800 (PST))因此,只需通过以下方式将其转换为js Date:new Date(ISOString);

hiz5n14c

hiz5n14c4#

这对我很有效:

var start = new Date("2020-10-15T00:00:00.000+0000");
 //or
start = new date("2020-10-15T00:00:00.000Z");

collection.find({
    start_date:{
        $gte: start
    }
})...etc

新日期(2020,9,15,0,0,0,0)可能导致日期错误:我是指非ISO格式(记住javascript从0到11计算月份,所以10月份是9)

9fkzdhlc

9fkzdhlc5#

我通过在node.js中示例化一个新的Date对象解决了这个问题:...
在Javascript中,将Date().toISOString()发送到节点js:...

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。

相关问题