使用 Waterline ORM SailsJS 的日期之间
Between Dates using Waterline ORM SailsJS
目标:Return 在两个日期之间创建的项目列表。
根据这个问题 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)
然而我的看法returns每次都没什么。
在写这个问题时我意识到问题是我的过滤器中有 date
而不是 createdAt
。
因此以下工作:
User.find({
createdAt: { '>': start, '<': end }
}).exec(/* ... */);
如果您想知道如何使用 API 蓝图查询,您将需要使用 Date 对象的 toISOString() 方法。例如 :
http://localhost:1337/:model/?where={date: {'<=', date.toISOString()}}
目标:Return 在两个日期之间创建的项目列表。
根据这个问题 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)
然而我的看法returns每次都没什么。
在写这个问题时我意识到问题是我的过滤器中有 date
而不是 createdAt
。
因此以下工作:
User.find({
createdAt: { '>': start, '<': end }
}).exec(/* ... */);
如果您想知道如何使用 API 蓝图查询,您将需要使用 Date 对象的 toISOString() 方法。例如 :
http://localhost:1337/:model/?where={date: {'<=', date.toISOString()}}