Ответ 1
Попробуйте использовать строку ISO
var isodate = new Date().toISOString()
См. также: определение метода в MDN.
У меня установлена база данных mongo.
создание нового объекта date в mongoDb создает объект даты в формате ISO
например: ISODate("2012-07-14T00:00:00Z")
Я использую node.js для подключения к базе данных mongo и запроса базы данных.
когда когда-либо я создаю новый объект даты (new Date()
) в javascript, он создает объект даты javascript, например: Wed Mar 06 2013 14:49:51 GMT-0600 (CST)
Есть ли способ создать объект даты ISO в javascript, чтобы я мог отправить объект непосредственно в mongoDb и выполнить запрос даты
Я могу выполнить следующий запрос в mongoDb
db.schedule_collection.find({
start_date: { '$gte': new Date(2012, 01, 03, 8, 30) }
})
но не может выполнять, когда я отправляю объект даты javascript из node
В кулинарной книге mongodb представлен пример python для запроса базы данных mongo с использованием модуля datetime, но он не предоставляет никакого примера использования javascript.
Любая помощь приветствуется. Поблагодарив вас заранее
Попробуйте использовать строку ISO
var isodate = new Date().toISOString()
См. также: определение метода в MDN.
В node драйвер Mongo предоставит вам строку ISO, а не объект. (например: Mon Nov 24 2014 01:30:34 GMT-0800 (PST)
) Итак, просто преобразуйте его в js Date: 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 */
});
Я решил эту проблему, создав новый объект Date в node.js:...
В 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 для создания нового объекта Date в nodejs:..
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.