2011-09-10 18 views
25

Llamo a la fecha en que se creó un registro en una aplicación básica que ejecuta Rails 3.1.¿Cambiar el formato de created_at en Rails 3.1?

<%= @issue.created_at %> 

Las salidas superiores a la siguiente marca de tiempo:

2011-09-10 14:44:24 UTC 

¿Cuál es la forma más sencilla de alterar la forma en que esta muestra? Me gustaría algo como esto:

10 Sept. 2011 

y entonces de alguna manera llamar de nuevo con un formato diferente:

14:44 

por lo que se puede llamar dos veces y fusionar los dos juntos:

10 Sept. 2011 
14:44 

La razón por la que quiero llamarlo dos veces en lugar de crear un ayudante para formatear una fecha/hora de dos líneas es permitirme llamar la fecha en algunos lugares y solo el tiempo en otros.

Respuesta

76

La cosa más sencilla de hacerlo es utilizar la función strftime

# Day/Month/Year 
@issue.created_at.strftime("%d %b. %Y") 
# Hour:Min 
@issue.created_at.strftime("%H:%M") 

Se puede poner esas dos llamadas separadas en ayudantes si usted se encuentra haciendo que sea mucho.

+1

me sale un error de ningún método si pongo en el archivo de los temas de ayuda. ¿Debería estar alterando la forma en que llamo created_at? – dannymcc

+2

Algunos pueden encontrar esto útil junto con esta solución: [strftime docs] (http://www.ruby-doc.org/core-1.9.3/Time.html#method-i-strftime) – stereoscott

+0

esto debería ser aceptado ¡responder! –

9
<%= l(@issue.created_at, :format=>:your_format) %> 

en el entorno local YAML (app/config/locale/country_id.yml) debe declarar

time: 
formats: 
    your_format: '%d %b. %Y' 
    your_another_format: '%I:%M' 

Fecha formato debe ser declarado dentro de su i18n archivo de definición de YAML para una fácil configuración, y otra formato de fecha se pudo encontrar here

7

Confirmar http://www.foragoodstrftime.com/ una manera fácil de personalizar la fecha/hora de formatear @spike

+1

Muy inteligente .... – kstratis

+0

Agregar tiempo :: DATE_FORMATS [: predeterminado] = "% d /% m /% Y% H:% M" o alguna variación de esta cadena en un archivo en config/initializers (puede llamarlo date_and_time.rb) – Mark

1

Usted puede hacer:

@issue.created_at.to_date.iso8601