strf rails name month ruby-on-rails ruby

ruby on rails - rails - ¿Transformando Datetime en mes, día y año?



ruby time format (7)

Parece que no puedo encontrar esto y siento que debería ser fácil. En Ruby on Rails, ¿cómo tomo:

2010-06-14 19:01:00 UTC

y convertirlo en

June 14th, 2010

¿No puedo usar un ayudante en la vista?


Formatos de hora y fecha en rieles:

Fecha

====

db:‘%Y-%m-%d’ 2008-08-20 long_ordinal:‘&proc’ August 20th, 2008 long:‘%B %e, %Y’ August 20, 2008 rfc822:‘%e %b %Y’ 20 Aug 2008 number:‘%Y%m%d’ 20080820 short:‘%e %b’ 20 Aug

Fecha y hora

====

db:‘%Y-%m-%d’ 2008-08-20 16:56:21 long_ordinal:‘&proc’ August 20th, 2008 16:56 long:‘%B %e, %Y’ August 20, 2008 16:56 rfc822:‘%e %b %Y’ Wed, 20 Aug 2008 16:56:21 -0600 number:‘%Y%m%d’ 20080820165621 short:‘%e %b’ 20 Aug 16:56

Hora

====

db:‘%Y-%m-%d %H:%M:%S’ 2008-08-20 16:56:21 long_ordinal:‘&proc’ August 20th, 2008 16:56 long:‘%B %d, %Y %H:%M’ August 20, 2008 16:56 rfc822:‘%a, %d %b %Y %H:%M:%S %z’ Wed, 20 Aug 2008 16:56:21 -0600 short:‘%d %b %H:%M’ 20 Aug 16:56 number:‘%Y%m%d%H%M%S’ 20080820165621 time:‘%H:%M’ 16:56

por ejemplo:

<%= news.created_at.strftime("%B %d, %Y %H:%M") %>

Gracias http://onrails.org/2008/08/20/what-are-all-the-rails-date-formats.html


Justo el otro día hubo una pregunta similar. En mi respuesta, ¿cómo obtengo el nombre del mes en ruby ​​on Rails? Mostré cómo puede agregar una definición personalizada a su archivo config/environment.rb .

ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!( :my_own_long_date_format => "%B %d, %Y")

Ahora puede llamar a Time.now.to_s(:my_own_long_date_format) desde cualquier vista para obtener:

June 15, 2010


Necesita el módulo Time para Time.parse y ActiveSupport para Integer#ordinalize :

require ''time'' require ''active_support'' input = ''2010-06-14 19:01:00 UTC'' t = Time.parse(input) date = "%s %s, %d" % [t.strftime("%B"), t.day.ordinalize, t.year] # => "June 14th, 2010"


No es necesario guardarlo en una variable.

Time.now.strftime("%Y-%m-%d") # 2013-01-08



No se para

June 14th, 2010

Pero si quieres

June 14, 2010

Ref. ¿Cómo obtengo el nombre del mes en Ruby en Rails? o this

Solo haz

@date = Time.now @date.strftime("%B %d, %Y")

Y para el uso del sufijo siguiente.

@date.strftime("%B #{@date.day.ordinalize}, %Y") # >>> Gives `June 18th, 2010`