我搜索高低,但我唯一能找到的是如何根据日期范围进行搜索(例如从日期A到日期B)如何查找特定日期?
我这样做了,但不知怎的,这是不对的:
var diff = parseInt(searchKey);
var delta = diff * 24 * 60 * 60 * 1000;
if(diff!=NaN){
var targetDate = new Date(Date.now() + delta);
//alert(targetDate.toString());
selector['date'] = targetDate;
Session.set('selector', selector);
Session.set('isFiltered',true);
}
targetDate
是有效日期,searchKey将作为剩余天数返回(即7天或-7,如果日期已过)。然后selector
将作为参数传递给find()
以搜索集合。
太糟糕了。它没有按预期工作。在执行像查询选择器{ date: '2014-04-01 00:00:00:00}
之类的操作之前,是否必须解析或格式化javascript Date对象?我不能简单地传递JS对象,而且框架足够聪明,可以比较它吗?
答案 0 :(得分:1)
日期对象包含日期和时间值。要查找日期等于给定日期的项目,您需要在所述日期的开始和结束之间搜索项目。寻找具有相同日期的项目只会显示时间完全相等的那些项目,最多可达毫秒。
答案 1 :(得分:1)
要使其发挥作用,您应该使用moment
包mrt add moment
在MongoDB中创建文档时,将ate指定为moment(moment().format("DD.MM.YYYY"), "DD.MM.YYYY").toDate()
,这将在午夜返回当前日期
当您查询时,您可以使用相同的格式搜索特定日期。使用moment的优秀API来计算正确的日期。将来7天将是moment(moment().format("DD.MM.YYYY"), "DD.MM.YYYY").add('days', 7)
这有点麻烦,但查询会比搜索午夜到午夜更快。
希望有所帮助