我正在尝试按日期过滤某些信息,并且日期以以下格式保存在数据库中:
2018-05-23T23:00:00.000+00:00
这就是我试图做的
router.get('/byDate', function (req, res) {
req.query.fromDate
req.query.toDate
Schedule.find({ date : {
$lt: new Date(req.query.toDate).toISOString(),
$gte: new Date(req.query.fromDate).toISOString()
} } , function(err, data){
if(err) throw err;
res.json(data);
});
});
答案 0 :(得分:0)
您可以使用JavaScript日期参考从时间戳中获取信息。创建日期对象并传递时间戳,您可以使用日期对象提供的许多属性。
有关更多信息,请检查:https://www.w3schools.com/jsref/jsref_obj_date.asp
希望这会有所帮助。
router.get('/byDate', function (req, res) {
req.query.fromDate
req.query.toDate
let fromdate = new Date(Date.parse(req.query.fromDate));
let month = new Array();
month[0] = "January";
month[1] = "February";
month[2] = "March";
month[3] = "April";
month[4] = "May";
month[5] = "June";
month[6] = "July";
month[7] = "August";
month[8] = "September";
month[9] = "October";
month[10] = "November";
month[11] = "December";
console.log('Day --->' + fromdate.getDay());
console.log('Month -->' + month[fromdate.getMonth()]);
console.log('Year -->' + fromdate.getFullYear());
});
答案 1 :(得分:0)
您可以通过将日期转换为ISO字符串来获得指定的格式。但是,您将需要执行一些其他操作才能获得所需的特定格式。
例如:我尝试过。
this.date = new Date();
this.formattedDate = this.date.toISOString();
输出为
Wed Jul 24 2019 12:08:15 GMT+0530 (India Standard Time)
2019-07-24T06:38:15.837Z
您可以通过将时间传递到datetime管道并指定格式来显示时间。如果要对其执行任何其他操作,则可以使用另一个答案(https://www.w3schools.com/jsref/jsref_obj_date.asp)中提到的链接对该对象执行此操作。
答案 2 :(得分:0)
好吧,我尝试将其切成薄片,并且有效
$lt: new Date(req.query.toDate).toISOString().slice(0,21),
$gte: new Date(req.query.fromDate).toISOString().slice(0,21)