Rails查询更改时间
Rails query changes the time
<% 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
是同一时间,打印在不同的时区。
在 Rails 中,您应该始终明确定义您正在交易的时区:
Time.now # incorrect
Time.zone.now # correct
<% 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
是同一时间,打印在不同的时区。
在 Rails 中,您应该始终明确定义您正在交易的时区:
Time.now # incorrect
Time.zone.now # correct