Есть ли в Rails 3 способ использовать datetime_select и отображать часы, показывающие 12-часовые параметры am/pm, а не 24-часовые параметры?
Rails 3: datetime_select с опциями am/pm
Ответы (3)
Если кто-то наткнется на этот вопрос, ответ для рельсов 3.2:
<%= f.datetime_select :attribute_name,
ampm: true %>
person
Tass
schedule
01.03.2013
Это правильный, поддерживаемый Rails способ, но вывод представляет собой выбор часа с параметрами, помеченными как 01:00, 02:00 и т. д., что делает установленное время читаемым как 01:30, что действительно шатко с точки зрения пользователя — почти как плохо, как 24-часовое время.
- person pjmorse; 06.04.2015
Я недоумеваю, почему кто-то запрограммировал это таким образом. Без разницы. Норма 3 бокса 9 : 15 : PM
- person Greg Blass; 03.12.2015
@GregBlass, вместо этого нам следует переключиться на 24-часовой формат. ;-)
- person Tass; 03.12.2015
Вот метод, который я добавил в свой вспомогательный класс:
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)
person
Drew Johnson
schedule
13.07.2010
Приведенный ниже код неправильно обрабатывает полночь и полдень: он называет полдень «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
person
thucydides
schedule
08.06.2011