J'appelle la date à laquelle un enregistrement a été créé dans une application de base exécutant Rails 3.1.
<%= @issue.created_at %>
Ce qui précède génère l'horodatage suivant:
2011-09-10 14:44:24 UTC
Quel est le moyen le plus simple de modifier l’affichage? Je voudrais quelque chose comme ça:
10 Sept. 2011
et puis en quelque sorte l'appeler à nouveau avec un format différent:
14:44
je peux donc l'appeler deux fois et fusionner les deux:
10 Sept. 2011
14:44
Si je veux l'appeler deux fois plutôt que de créer un assistant pour formater une date/heure sur deux lignes, c'est pour me permettre d'appeler la date à certains endroits et uniquement l'heure à d'autres.
Je voudrais utiliser I18n. Jetez un oeil à quelques exemples http://guides.rubyonrails.org/i18n.html#adding-date-time-formats . C'est une manière propre et flexible de formater les dates et les heures.
La chose la plus simple à faire est d'utiliser la fonction strftime
# Day / Month / Year
@issue.created_at.strftime("%d %b. %Y")
# Hour:Min
@issue.created_at.strftime("%H:%M")
Vous pouvez placer ces deux appels dans des assistants distincts si vous vous trouvez souvent en train de le faire.
<%= l(@issue.created_at, :format=>:your_format) %>
dans les paramètres régionaux YAML (app/config/locale/country_id.yml), vous devez déclarer
time:
formats:
your_format: '%d %b. %Y'
your_another_format: '%I:%M'
Le formatage de la date doit être déclaré dans votre fichier de définition i18n YAML pour une configuration facile, et un autre format de date peut être trouvé ici
Consultez http://www.foragoodstrftime.com/ pour personnaliser facilement le formatage date/heure @spike
Tu peux faire:
@issue.created_at.to_date.iso8601
to_s prend également un argument de formatage: