Pregunta

En Rails 3, ¿hay una manera de uso y visualización datetime_select horas mostrando opciones de am / pm 12 horas en lugar de las opciones de 24 horas?

¿Fue útil?

Solución

En tropieza cualquiera de caso sobre esta pregunta, la respuesta para rieles 3.2 es:

<%= f.datetime_select :attribute_name,  
                       ampm: true %>  

Otros consejos

Este es el método que añade a mi clase de ayuda:

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

Entonces enchufado dicho método, a mi modo de ver:

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

Se parecía hacer el truco, pero si hay una manera más idiomática de hacer esto, yo estaría interesado en escuchar.

(actualización: hallaron errores corregidos por Tucídides)

El código siguiente trata de la medianoche y el mediodía de forma incorrecta: se llama a mediodía '12 AM ', que es la media noche; que llama la medianoche '12 PM ', que es el mediodía.

Además, el código debe utilizar 0:00 como la medianoche, que es el estándar internacional.

Fijo:

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top