<% 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 +0600
和2016-05-31 18:00:00 UTC
是同一时间,在不同的时区打印。
在铁轨中,您应该始终明确定义您要处理的时区:
Time.now # incorrect
Time.zone.now # correct
进一步阅读:http://danilenko.org/2012/7/6/rails_timezones/