首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用户时区中日期的ActiveRecord查询

用户时区中日期的ActiveRecord查询
EN

Stack Overflow用户
提问于 2016-11-11 18:46:13
回答 1查看 3.5K关注 0票数 6

我在同一天相对于用户查询对象(也就是说,如果是用户时区中的2016-11-11,他们应该会看到在其时区11-11上发生的事件)。

我的数据库将事件日期时间(类型为datetime)存储在UTC中。当我尝试:

Event.where(DATE(datetime) = ?", Time.zone.today)

我希望它能够将日期时间与当前用户的时区(在around_action中通过Time.use_zone设置)的日期相同的事件提取出来。我在application.rb中有这样的设置:

config.active_record.time_zone_aware_types = [:datetime, :time]

但是,存储在第二天UTC中的事件不会被返回。例如,在11/11 10 in山时间的事件存储在世界协调时上午11/12 5。它仍应作为发生在11/11时返回给山区时间用户。

如何查询数据库以获取当前用户日期的事件?非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-11 19:10:58

由于这个问题,我找到了一个答案:

Getting date with timezone offset in postgres

基本上,我需要将datetime转换为UTC (首先是),然后转换为用户时区。

Event.where("DATE(datetime AT TIME ZONE 'UTC' AT TIME ZONE ?) = ?", Time.now.in_time_zone(current_user.time_zone).strftime("%Z"), Time.zone.today)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40554287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档