Rails不正确的日期查询

时间:2016-07-14 13:39:35

标签: ruby-on-rails date timezone

我遇到ActiveRecord查询问题。我想它与时区有关。 这是示例

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 [:filter] [:date_start]是&#34; 10.07.16&#34;和params [:filter] [:date_end]是&#34; 15.07.16&#34; 结果查询中的日期将不正确。生成的日期将是[正确日期] - [区域时间差异]。所以2016-07-16 00:00为start_end我有2016-07-15 21:00

1 个答案:

答案 0 :(得分:0)

有两种方法可以使用时区

Time.zone.nowTime.now

而不是使用Date.parse使用Time.zone.parse。以下是获取时区日期的更多详细信息。使用不同的日期,您可以找到不同的值。

date_start = Time.zone.parse(params[:filter][:date_start]).beginning_of_day date_end = Time.zone.parse(params[:filter][:date_start]).end_of_day data = MyModel.where("created_at beween ? and ?", date_start, date_end)