Ari*_*rif 1 ruby ruby-on-rails
在我的 rails 项目中有一个搜索页面,其中包含一个下拉列表,其中日期范围值以 (-) 分隔。下拉选项如下:
Jan,2014 - March,2014
April,2014 - Jun,2014
....
Oct,2014 - Dec,2014
Run Code Online (Sandbox Code Playgroud)
用户可以选择这些日期范围之一,并且只会显示位于所选日期范围内的那些记录。要过滤的字段start_date是时间戳字段。
所以我想要这样的东西:
filter = params[:filter].split("-")
@posts = Post.where(start_date: filter[0]..filter[1])
Run Code Online (Sandbox Code Playgroud)
但在 params 中,我只得到月份和年份。如何解析这些值以便上述查询有效?
嘿,您可以尝试使用Date.strptime将字符串解析为日期
filter = params[:filter].split(" - ")
Run Code Online (Sandbox Code Playgroud)
使用将字符串转换为日期 strptime
st_date = Date.strptime(filter[0],"%B,%Y")
end_date = Date.strptime(filter[1],"%B,%Y")
Run Code Online (Sandbox Code Playgroud)
创建日期范围作为第一个月的开始到第二个月的结束
date_range = st_date.beginning_of_month..end_date.end_of_month
@posts = Post.where(:start_date => date_range)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2716 次 |
| 最近记录: |