铁轨查询改变了时间


<% date = Time.now.beginning_of_day %>
<%= date %> prints 2016-06-01 00:00:00 +0600
<% schedule = Schedule.where(:date_ => date).first %>
<%= date %> prints 2016-05-31 18:00:00 UTC

2016-06-01 00:00:00 0600

2016-05-31 18:00:00 UTC

使用mongoid

date_是时间字段

我的本地时区是UTC 6

我很抱歉我的问题很愚蠢-_-'

▶ Time.now
#⇒ 2016-06-26 07:43:42 +0200
▶ Time.now.utc
#⇒ 2016-06-26 05:43:46 UTC

也就是说,您得到的2016-06-01 00:00:00 +06002016-05-31 18:00:00 UTC是同一时间,在不同的时区打印。

在铁轨中,您应该始终明确定义您要处理的时区:

Time.now # incorrect
Time.zone.now # correct

进一步阅读:http://danilenko.org/2012/7/6/rails_timezones/

相关内容

  • 没有找到相关文章

最新更新