Rails 3: datetime_select с настройками am / pm - PullRequest
4 голосов
/ 29 июня 2010

В Rails 3, есть ли способ использовать datetime_select и отображать часы, показывающие 12-часовые параметры, вместо 24-часовых?

Ответы [ 3 ]

7 голосов
/ 02 марта 2013

В случае, если кто-то наткнется на этот вопрос, ответ для рельсов 3.2:

<%= f.datetime_select :attribute_name,  
                       ampm: true %>  
2 голосов
/ 08 июня 2011

Код ниже относится к полуночи и полудню неправильно: он вызывает полдень «12:00», то есть полночь; он называет полночь «12 часов вечера», то есть полдень.

Кроме того, код должен использовать 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
2 голосов
/ 13 июля 2010

Вот метод, который я добавил в свой класс помощников:

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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...