【问题标题】:ActiveSupport::TimeZone list of strings for offsetActiveSupport::TimeZone 偏移量字符串列表
【发布时间】:2013-04-09 20:29:38
【问题描述】:

我关注了 Ryan Bate 的 railscast #106 http://railscasts.com/episodes/106-time-zones-revised,它为 User 模型添加了一个 time_zone 字符串。字符串来自下拉列表:

= f.time_zone_select :time_zone, ActiveSupport::TimeZone.us_zones

我正在尝试查询共享公共时区偏移量的所有用户(这样我就可以在每天的特定时间向他们发送电子邮件)。

User.where(:time_zone => ['Guadalajara','Central America','Mexico City', 'Monterrey', 'Saskatchewan'])

我无法获得特定偏移量的时区名称列表。我一直在修补 TzInfo 和 ActiveSupport::TimeZone.zones_map,但效果有限。我觉得 zone_map 应该能够满足我的需求,但是我无法从中获取我想要的数据(虽然我在那里看到了它!)。

我在这里采取了错误的方法吗?我在想我可以将 GMT 偏移量存储在用户身上,然后以这种方式查询?

我的 google-fu 让我失望了。

【问题讨论】:

    标签: ruby-on-rails timezone activesupport railscasts


    【解决方案1】:

    我想通了——

    tz_names = ActiveSupport::TimeZone.zones_map.values.collect{|z| z.name if z.utc_offset == offset}.compact
    

    【讨论】:

    猜你喜欢
    • 2016-07-06
    • 2019-09-13
    • 2015-03-11
    • 1970-01-01
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 2019-12-07
    相关资源
    最近更新 更多