使用 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'));

打印 startend 到控制台向我显示了这一点(由于某种原因不同的时区)?

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()}}