代码之家  ›  专栏  ›  技术社区  ›  jessecurry

在Ruby on Rails中选择12小时时区

  •  5
  • jessecurry  · 技术社区  · 14 年前

    我需要从rails 2.3.8应用程序的用户那里捕获一个时间和时区,但一直无法想出一个干净的解决方案来创建和解析这些选择。

    理想情况下,我会有一个下拉菜单,用于:

    • 小时(1-12)
    • 上午/下午
    • 时区

    有没有一个gem/plugin可以实现我想要的功能?我需要在数据库中同时存储时区和时区吗?存储的最佳策略是什么?

    我最终需要以UTC格式输出这些值,但是用户应该能够返回并在正确的时区中查看时间。

    2 回复  |  直到 14 年前
        1
  •  11
  •   wesgarrison    14 年前

    您可以使用适当的方法选择时区:

    同样的,还有 date_select 为了约会。

    存储:

    如果时区特定于用户且没有更改,则将其时区存储在用户记录中,并在加载当前用户时进行设置。Rails将时间转换为/从UTC,并始终将UTC存储在数据库中,并为您自动转换为默认时区(包括夏令时!)。最简单的方法。

    use_zone(zone)

    更新:我写了一些 Rails timezone examples 作为博客条目。

        2
  •  1
  •   Alextoul    12 年前

     ampm = ["12 AM","01 AM","02 AM","03 AM","04 AM","05 AM","06 AM","07 AM","08 AM","09 AM","10 AM","11 AM","12 PM","01 PM","12 PM","01 PM","02 PM","01 PM","02 PM","03 PM","04 PM","05 PM","06 PM","07 PM","08 PM","09 PM","10 PM","11 PM"]
        j("#game_start_time_4i option").each(function(index,value){
            j(value).html(ampm[index]);
        });
    

    轨道:

    <%= datetime_select('game', 'start_time') %>
    
    推荐文章