2017-03-08 16 views
1

APIを使用して、Webサイトから注文リストを取得できます。Ruby On Rails - Datetime Range issue

このリストには、私は各注文ごとに、提示日があります。

私は、これはAPIは、日付を提示する方法である

i「は範囲に悪い値」を持っている特定の範囲に配置されたため、このリストをフィルタリングする必要がありますが、日付範囲を使用して:

"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 } 

私の目標のSIのみ月曜日と火曜日

012の上に、現在の週に置く順番をフィルタリングすることです

はい、コードは23:59まで火曜日の日を埋めるように変更する必要があります!!私はそれを後にすることができます!

答えて

2

selectメソッドでは動作しないアクティブなレコード表記を使用しようとしています。このようなものはうまくいくはずです。

@ele_ordini = ele_ordini.select do |ordine| 
    tmp = ordine['date_created'].to_datetime 
    tmp >= lunedi.to_datetime && tmp <= martedi.to_datetime 
end 
+1

素晴らしいです!ありがとう;-) – EffeBi

0

あなただけの日付を比較する(そしてあなたが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 } 

あなただけの各日付と月曜日の間の日数の違いを見て、そして0(月曜日)、またはあなたが述べる必要がある1日(火)

0

で何も選択している。すなわちそれを変数に追加するときの単位時間。試してみてください

@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'] }