【问题标题】:Rails query changes the timeRails 查询更改时间
【发布时间】:2016-10-28 08:55:58
【问题描述】:
<% 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

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

【问题讨论】:

    标签: ruby-on-rails ruby mongodb timezone mongoid


    【解决方案1】:
    ▶ 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同一时间,打印在不同的时区。

    在 Rails 中,您应该始终明确定义您正在处理的时区:

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

    延伸阅读:http://danilenko.org/2012/7/6/rails_timezones/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-06
      • 2016-12-20
      • 2018-07-15
      • 1970-01-01
      相关资源
      最近更新 更多