目标:返回在两个日期之间创建的项目列表。
根据此问题https://github.com/balderdashy/waterline/issues/110,目前还没有between
功能。但是,解决方法如下:
User.find({
date: { '>': new Date('2/4/2014'), '<': new Date('2/7/2014') }
}).exec(/* ... */);
更确切地说,我们不想要上面的硬编码日期,因此我们会从表单提交中读取输入,如下所示:
start = new Date(req.param('yearStart') + '/' + req.param('monthStart') + '/' + req.param('dayStart'));
end = new Date(req.param('yearEnd') + '/' + req.param('monthEnd') + '/' + req.param('dayEnd'));
将start
和end
打印到控制台会显示此信息(由于某种原因,不同的时区)?
from: Sat Mar 01 2014 00:00:00 GMT-0500 (EST)
to: Sat Apr 30 2016 00:00:00 GMT-0400 (EDT)
但是我的观点每次都没有回复。
答案 0 :(得分:12)
在撰写此问题时,我意识到问题是我的过滤器中有date
而不是createdAt
。
以下是有效的:
User.find({
createdAt: { '>': start, '<': end }
}).exec(/* ... */);
答案 1 :(得分:1)
如果您想知道如何使用API蓝图查询,则需要使用Date对象的toISOString()方法。例如 :
http://localhost:1337/:model/?where={date: {'<=', date.toISOString()}}