2010-09-09 9 views

Odpowiedz

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

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

19

Można po prostu zrobić (zastępcze w Time dla DateTime przypadku korzystania prosto Ruby - czyli nie Rails):

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

Jeśli używasz tego formatu dużo, może chcesz stworzyć date_time_formats inicjatora w folderze RAILS_ROOT/config/initializers (zakładając Rails 2), mniej więcej tak:

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

które następnie umożliwiają stosowanie bardziej przyjazną wersję DateTime.now.to_s(:human) w kodzie.

+1

Jest to najbardziej elegancki sposób to zrobić. Używanie strftime w każdym miejscu jest nieporządne. Właściwie choć można po prostu zrobić coś takiego (mniej opisowy) '' 'rubinowe Data :: DATE_FORMATS [: MDR] = "% B% d,% Y" Czas :: DATE_FORMATS [: MDR] = "% B% d% Y" Czas :: DATE_FORMATS [: month_and_year] = "% B% Y" Czas :: DATE_FORMATS [: pretty] = lambda {| czas | time.strftime ("% a,% b% e na% l:% M") + time.strftime ("% p") downcase } '' ' – Subimage

+2

Należy zauważyć, że zmiany tylko w plikach konfiguracyjnych działają po ponownym uruchomieniu serwera, w przeciwieństwie do zmian w modelach, widokach i kontrolerach. – CurlyCorvus

6

myślę, że można użyć .strftime:

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

To powinno dać "The date is 09/09/10". Zobacz here, aby uzyskać świetną listę kodów formatu dla .strftime.

0

Jeśli nie potrzebują pełnego roku można spróbować Time.now.strftime('%D')

Powiązane problemy