【发布时间】:2017-03-26 01:21:12
【问题描述】:
我在相对于用户的同一日期查询对象(即,如果在用户的时区是 2016 年 11 月 11 日,他们应该会在他们的时区看到发生在 11 月 11 日的事件)。
我的数据库以 UTC 存储事件日期时间(日期时间类型)。当我尝试时:
Event.where(DATE(datetime) = ?", Time.zone.today)
我希望它会拉取日期时间与当前用户的时区在同一日期的事件(通过Time.use_zone 在around_action 中设置)。我在 application.rb 中有这个设置:
config.active_record.time_zone_aware_types = [:datetime, :time]
但是,存储在第二天 UTC 中的事件不会被返回。例如,山区时间 11 月 11 日晚上 10 点的事件存储在 UTC 时间 11 月 12 日上午 5 点。它仍应在 11 月 11 日返回给 Mountain Time 用户。
如何查询数据库以获取当前用户日期的事件?非常感谢!
【问题讨论】:
标签: ruby-on-rails database timezone rails-activerecord