【问题标题】:Between Dates using Waterline ORM SailsJS使用 Waterline ORM SailsJS 的日期之间
【发布时间】:2015-03-29 20:23:11
【问题描述】:

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

根据这个问题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)

但是我的视图每次都没有返回任何内容。

【问题讨论】:

    标签: sails.js waterline


    【解决方案1】:

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

    所以下面的工作:

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

    【讨论】:

    • 您知道是否可以将此功能与日期格式(如 2018-04-11T12:45:00.000Z)一起使用?目前它似乎只适用于 2018-04-11
    • 我把问题放在这里了:stackoverflow.com/questions/49775927/…
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-30
      • 1970-01-01
      • 2015-08-25
      • 1970-01-01
      • 2020-09-06
      • 1970-01-01
      相关资源
      最近更新 更多