从json Rails中选择某些日期数据

时间:2014-09-16 05:59:19

标签: ruby-on-rails json ruby-on-rails-3.2

我试图仅从已解析的json系列中选择Date.today + 1.day的结果,但我对如何最好地实现它感到困惑。

json的格式为:

{"status": "ok", "data": {"temperatures": [["2014-09-16 07:00", 14.4], ["2014-09-16 08:00", 17.6], ["2014-09-16 09:00", 20.5], ["2014-09-16 10:00", 23.0], ["2014-09-16 11:00", 24.8], ["2014-09-16 12:00", 26.4]]}}

控制器

dates = []
temps = []

@forecast['data']['temperatures'].each do |data|
 dates << data[0]
 temps << data[1]
end

dates.flatten.each do |d|
 dates << DateTime.parse(d).strftime("%d %b - %H:%M")
end

@results = dates.map {|f| [Date.today + 1.day(f), temps]}

1 个答案:

答案 0 :(得分:1)

如果您想选择日期大于一天的数据,那么:

@forecast['data']['temperatures'].select{|temp| temp[0].to_date > 1.day.from_now.to_date }

否则,如果您想要选择日期大于或等于一天的数据:

@forecast['data']['temperatures'].select{|temp| temp[0].to_date >= 1.day.from_now.to_date }