2011-10-11 3 views
1

Je suis complètement nouveau à ruby ​​et j'essaye de formater le champ created_at tiré de la gemme de Twitter. Je sais que dans les rails, vous pouvez utiliser time_ago_in_words pour les rails, mais je me demandais comment vous pouvez le faire en ruby. En fait, je me demande comment vous pouvez mettre en forme une date qui est dans ce format pour commencer par "Lun, 10 Oct 2011 20:13:10 +0000". Est-ce le format de date standard?Comment formater datetime dans ruby ​​avec Sinatra et Twitter Gem

Toute aide serait brillante.

Répondre

2

Si vous utilisez Ruby 1.9, Time.parse comprend le format très bien:

ruby-1.9.2-p180 :003 > t = Time.parse("Mon, 10 Oct 2011 20:13:10 +0000") 
=> 2011-10-10 23:13:10 +0300 
ruby-1.9.2-p180 :004 > t.month 
=> 10 
ruby-1.9.2-p180 :005 > t.strftime("%d-%m-%Y") 
=> "10-10-2011" 

En 1.8, DateTime a une méthode similaire:

irb(main):004:0> require 'date' 
=> true 
irb(main):006:0> t = DateTime.parse("Mon, 10 Oct 2011 20:13:10 +0000") 
=> #<DateTime: 2011-10-10T20:13:10+00:00 (21218503759/8640,0/1,2299161)> 
irb(main):007:0> t.month 
=> 10 

Si vous souhaitez implémenter distance_of_time_in_words par vous-même , le meilleur point de départ est probablement de vérifier its source (cliquez sur le lien Voir la source sur cette page).

+0

Brillant, merci de m'avoir expliqué si précisément. – yoamomonstruos