Ruby on rails RubyonRails-日期时间范围问题

Ruby on rails RubyonRails-日期时间范围问题,ruby-on-rails,ruby,date-range,Ruby On Rails,Ruby,Date Range,使用API,我可以从网站检索订单列表 在这个列表中,我有每个订单的提交日期 我需要为特定范围内的订单筛选此列表,但使用日期范围我有“范围值不正确” 以下是API显示日期的方式: "date_created"=>"2017-03-08T11:22:00" 这是我的密码 @lunedi = Date.today.at_beginning_of_week @martedi = Date.today.at_beginning_of_week + 1 ele_ordini = woocommerc

使用API,我可以从网站检索订单列表

在这个列表中,我有每个订单的提交日期

我需要为特定范围内的订单筛选此列表,但使用日期范围我有“范围值不正确”

以下是API显示日期的方式:

"date_created"=>"2017-03-08T11:22:00"
这是我的密码

@lunedi = Date.today.at_beginning_of_week
@martedi = Date.today.at_beginning_of_week + 1
ele_ordini = woocommerce.get("orders").parsed_response
@ele_ordini = ele_ordini.select { |ordine| ordine['date_created'] == lunedi.to_datetime..martedi.to_datetime }
我的目标是筛选本周的订单,仅在周一和周二


是的,代码必须在整个星期二的23:59之前更改!!但我以后可以做

您正在尝试使用活动记录表示法,该表示法与
select
方法不兼容。这样的办法应该行得通

@ele_ordini = ele_ordini.select do |ordine| 
  tmp = ordine['date_created'].to_datetime
  tmp >= lunedi.to_datetime && tmp <= martedi.to_datetime
end
@ele_ordini=ele_ordini.选择do|ordine |
tmp=ordine['date\u created'].to\u datetime

tmp>=lunedi.to_datetime&&tmp如果您只关心比较日期(而且您使用的是Rails,看起来您就是这样),那么您可以稍微简化一下。例如:

@lunedi = Date.today.at_beginning_of_week
ele_ordini = woocommerce.get("orders").parsed_response
@ele_ordini = ele_ordini.select { |ordine| ordine['date_created'].to_date - @lunedi < 2 }
@lunedi=Date.today.at\u周初
ele_ordini=woocommerce.get(“订单”).parsed_响应
@ele|u ordini=ele|u ordini.选择{rdine | ordine['date_created'].\u date-@lunedi<2}

i、 e.您只需查看每个日期与星期一之间的天数差异,并选择0(星期一)或1(星期二)

将其添加到变量时,您需要说明时间单位。试试这个

@lunedi = Date.today.at_beginning_of_week
@martedi = Date.today.at_beginning_of_week + 1.day
ele_ordini = woocommerce.get("orders").parsed_response
@ele_ordini = ele_ordini.select { |ordine| (lunedi..martedi).include? ordine['date_created'] }

伟大的谢谢;-)