【问题标题】:Ruby on Rails datetime_selectRuby on Rails datetime_select
【发布时间】:2011-11-28 07:08:00
【问题描述】:

我想知道是否有办法将 datetime_select 的 24 小时制转换为 12 小时制?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    Rails 3.1 内置了 am/pm 选项:

    <%= f.datetime_select :starttime, :ampm => true, :start_year => 2011, :order => [:month, :day, :year] %>
    

    【讨论】:

    • 这需要在文档中更加明显。除了这里,我在任何地方都找不到这个。很好的答案。
    【解决方案2】:

    好像有no predefined helper to do this particular job automatically。你必须extend and write你自己的助手来实现这个功能。

    另外,this is a very old plugin,对于类似的事情,我不确定这是否有效或是否仍在维护。

    我建议你继续编写自己的助手来完成another SO question 中建议的工作,如下所示:

    def am_pm_hour_select(field_name)
    select_tag(field_name,options_for_select([
        ["1 AM", "01"],["2 AM", "02"],["3 AM", "03"],["4 AM", "04"],["5 AM", "05"],["6 AM", "06"],
        ["7 AM", "07"],["8 AM", "08"],["9 AM", "09"],["10 AM", "10"],["11 AM", "11"],["Noon", "12"],
        ["1 PM", "13"],["2 PM", "14"],["3 PM", "15"],["4 PM", "16"],["5 PM", "17"],["6 PM", "18"],
        ["7 PM", "19"],["8 PM", "20"],["9 PM", "21"],["10 PM", "22"],["11 PM", "23"],["Midnight", "0"]]))
    end
    

    然后在视图中:

    <%= am_pm_hour_select "eventtime[start(4i)]" %>  
    

    【讨论】:

      猜你喜欢
      • 2010-11-30
      • 2010-11-11
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      • 2015-03-02
      • 2016-10-09
      • 2011-04-18
      • 2018-11-20
      相关资源
      最近更新 更多