2016-07-14 59 views
0

我有ActiveRecord查询的问题。我想它与时区有关。 这是示例Rails不正确的日期查询

date_start = Date.parse(params[:filter][:date_start]).beginning_of_day 
date_end = Date.parse(params[:filter][:date_start]).end_of_day 
data = MyModel.where("created_at>=? and created_at <=?", date_start, date_end) 

如果PARAMS是 PARAMS [:过滤器] [:DATE_START]是 “16年7月10日”,而params [:过滤器] [:DATE_END]是 “16年7月15日” 的日期 在所得查询将不正确。结果日期将为[正确日期] - [区域时间差异]。所以insted的的2016年7月16日00:00 start_end我有2016年7月15日21:00

+0

的日期格式...它应该像 Date.parse( “10年7月16日”)第一个变化#yymmdd =>孙,2016年7月10日 –

+0

但Date.parse分析我的约会正确。为什么我应该改变它? – Maxim

+0

好的你的问题是在查询级别.. –

回答

0

有使用的时区

Time.zone.nowTime.now

而是采用两种方式Date.parse使用Time.zone.parse。以下是获取时区日期的更多详细信息。有了不同的日期,你可以找到不同的值。

​​