2011-03-14 16 views
9

/mm/El formato de fecha predeterminado en Ruby es aaaa-mm-dd, pero necesitaba que sean dd/mm/aaaa en la vistaCambiar formato de fecha en la vista para DD AAAA

he escrito una date_format archivo en config/initializers como:

Time::DATE_FORMATS.merge!(:uk_format => '%m/%d/%Y') 

esto no funcionó ya que necesito para llamar date.to_s(:uk_format) con el fin de utilizar este formato. Pero dado que estoy usando <%= f.text_field :paymentDate %> para mostrar la fecha, no estoy seguro de poder agregar to_s a este caso.

¿Alguien me puede ayudar?


Editar 1

date.to_s realidad (: uk_format) no funciona bien, ¿cómo se utiliza adecuadamente inicializador .....?

Respuesta

27

Ver: Change default Ruby Time format

Adaptado mi respuesta vinculado anteriormente para la fecha y formato especificado:


Dado que está utilizando rieles, aprovechar el soporte de i18n: http://guides.rubyonrails.org/i18n.html#adding-date-time-formats

# config/locales/en.yml 
en: 
    date: 
    formats: 
     default: "%d/%m/%Y" 

Luego puede llamar al I18n.l Date.today para obtener una fecha formateada. O en su opinión, puede usar <%= l @foo.created_at %>.

+3

¿Qué hay de visita de la fecha de base de datos, qué ahora se pone efectúa así? – Souloikj

+0

Como un ayudante de salida, I18n funcionará con los datos que le proporcione, independientemente de la fuente, por lo que sí, funciona bien para mostrar las fechas de la base de datos. Sin embargo, es una mala idea transformar las fechas en formato de visualización para el almacenamiento, si eso es lo que quieres decir. – coreyward

+0

¿Qué tal si el formato de fecha predeterminado se refleja en los campos del formulario (por ejemplo, al editar un atributo de fecha en un modelo)? – findchris

2

probar este lugar:

Time::DATE_FORMATS.merge!({:db => '%m/%d/%Y', :uk_format => '%m/%d/%Y'}) 
Date::DATE_FORMATS.merge!({:db => '%m/%d/%Y', :uk_format => '%m/%d/%Y'}) 
Cuestiones relacionadas