在日期之间使用Waterline ORM SailsJS

时间:2015-03-29 20:23:11

标签: sails.js waterline

目标:返回在两个日期之间创建的项目列表。

根据此问题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'));

startend打印到控制台会显示此信息(由于某种原因,不同的时区)?

from: Sat Mar 01 2014 00:00:00 GMT-0500 (EST)
to: Sat Apr 30 2016 00:00:00 GMT-0400 (EDT)

但是我的观点每次都没有回复。

2 个答案:

答案 0 :(得分:12)

在撰写此问题时,我意识到问题是我的过滤器中有date而不是createdAt

以下是有效的:

User.find({
    createdAt: { '>': start, '<': end }
}).exec(/* ... */);

答案 1 :(得分:1)

如果您想知道如何使用API​​蓝图查询,则需要使用Date对象的toISOString()方法。例如 : http://localhost:1337/:model/?where={date: {'<=', date.toISOString()}}