6

Rails 3で、datetime_selectを使用して、24時間オプションではなく12時間午前/午後オプションを表示する時間を表示する方法はありますか?

4

3 に答える 3

2

以下のコードは、午前 0 時と正午を誤って扱います。正午を「午前 12 時」と呼びます。これは午前 0 時です。真夜中を「12 PM」と呼びます。これは正午です。

また、コードでは、国際標準である午前 0 時を 0:00 として使用する必要があります。

修理済み:

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
于 2011-06-08T03:20:46.660 に答える
2

ヘルパー クラスに追加したメソッドは次のとおりです。

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"],["12 PM", "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"],["12 AM", "0"]]))
end

次に、そのメソッドをビューにプラグインしました。

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

それはうまくいくように見えましたが、これを行うためのより慣用的な方法があれば、聞いてみたいと思います.

(更新: thucydides によって見つかったバグを修正)

于 2010-07-13T02:53:41.910 に答える