2009-08-11 10 views
12

Comment extraire correctement un temps que de l'objet datetime (post.created_at, pour être précis) avec/sans l'influence de TimeZone? Comment extraire les valeurs day, month et year? Comment extraire le day/month/year via un motif personnalisé (est-ce possible)?Travailler avec datetime dans Rails

Répondre

30

temps au format chaîne:

post.created_at.strftime("FORMAT STRING HERE") 
# Without the influence of time-zone: I take it that you want UTC 
post.created_at.utc.strftime("FORMAT STRING HERE") 

Lien pour la strftime documentation: http://ruby-doc.org/core/classes/Time.html#method-i-strftime

Pour obtenir l'heure, minute et seconde valeurs:

post.created_at.hour 
post.created_at.min 
post.created_at.sec 
+0

Shoot, c'est exactement ce dont j'avais besoin! Merci! – gmile

+2

Brève explication, exemple de code et lien vers la documentation. Une réponse stellaire! – Mizipzor

+0

@mizipzor: Merci! – Swanand

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

dans locale YAML (app/config/locale/countr y_id.yml), vous devez déclarer

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

Date de mise en forme doit être déclarée dans votre fichier de définition i18n YAML pour configurer facilement, et un autre format de date pourrait être trouvée ici.