2010-09-09 3 views

Répondre

107
<%= Time.now.strftime("%m/%d/%Y") %> 
+1

https://hackhands.com/format-datetime-ruby/ – Jason

19

Vous pouvez simplement faire (substitut à Time pour DateTime si vous utilisez Ruby droite - ie pas de Rails):

DateTime.now.strftime('%m/%d/%Y') 

Si vous utilisez ce format beaucoup, vous voudrez peut-être créer un date_time_formats initialiseur dans votre dossier RAILS_ROOT/config/initializers (en supposant que Rails 2), quelque chose comme ceci:

# File: date_time_formats.rb 
ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(
    :human => "%m/%d/%Y" 
) 

qui sera ensuite vous permettre d'utiliser la version plus conviviale de DateTime.now.to_s(:human) dans votre code.

+1

Ceci est la façon la plus élégante de le faire. Utiliser strftime partout est désordonné. En fait, si vous pouvez juste faire quelque chose comme ça (moins bavard) '' 'rubis Date :: DATE_FORMATS [: MDY] = "% B% d% Y" :: Temps DATE_FORMATS [: MDY] = "% B% d% Y" Temps :: DATE_FORMATS [: month_and_year] = "% B% Y" Temps :: DATE_FORMATS [: pretty] = lambda {| temps | time.strftime ("% a,% b% e à% l:% M") + time.strftime ("% p"). Downcase } '' ' – Subimage

+2

Il est à noter que les modifications dans les fichiers de configuration uniquement prendre effet après le redémarrage du serveur, contrairement aux changements de modèles, de vues et de contrôleurs. – CurlyCorvus

6

Je pense que vous pouvez utiliser .strftime:

t = Time.now() 
t.strftime("The date is %m/%d/%y") 

Cela devrait donner "The date is 09/09/10". Voir here pour une excellente liste des codes de format pour .strftime.

0

Si vous n'avez pas besoin l'année vous pouvez essayer Time.now.strftime('%D')

Questions connexes