2010-09-09 39 views

Respuesta

107
<%= Time.now.strftime("%m/%d/%Y") %> 
+1

https://hackhands.com/format-datetime-ruby/ – Jason

19

Usted podría simplemente hacer (suplente en Time para DateTime si se utiliza Rubí recta - es decir, no hay rieles):

DateTime.now.strftime('%m/%d/%Y') 

Si está utilizando ese formato mucho, es posible que desee crear un inicializador date_time_formats en la carpeta de RAILS_ROOT/config/initializers (suponiendo Carriles 2), algo como esto:

# File: date_time_formats.rb 
ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(
    :human => "%m/%d/%Y" 
) 

que a su vez le permiten usar la versión más amigable de DateTime.now.to_s(:human) en el código.

+1

Esta es la forma más elegante de hacerlo. Usar strftime por todos lados es complicado. En realidad, aunque sólo se puede hacer algo como esto (menos información) '' 'rubí Fecha :: DATE_FORMATS [: MDY] = "% B% d,% Y" Tiempo :: [DATE_FORMATS: MDY] = "% B% d% Y" Tiempo :: DATE_FORMATS [: month_and_year] = "% B% Y" Hora :: DATE_FORMATS [: pretty] = lambda {| time | time.strftime ("% a,% b% e en% l:% M") + time.strftime ("% p"). Downcase } '' ' – Subimage

+2

Debe tenerse en cuenta que los cambios en los archivos de configuración solamente surtirá efecto después del reinicio del servidor, a diferencia de los cambios en modelos, vistas y controladores. – CurlyCorvus

6

Creo que se puede utilizar .strftime:

t = Time.now() 
t.strftime("The date is %m/%d/%y") 

Esto debería dar "The date is 09/09/10". Consulte here para obtener una excelente lista de códigos de formato para .strftime.

0

Si usted no necesita todo el año podría intentar Time.now.strftime('%D')

Cuestiones relacionadas