2010-09-09 39 views

Trả lời

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

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

19

Bạn chỉ có thể làm được (thay thế trong Time cho DateTime nếu sử dụng thẳng Ruby - tức là không có Rails):

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

Nếu bạn đang sử dụng mà định dạng rất nhiều, bạn có thể muốn tạo một initializer date_time_formats trong thư mục RAILS_ROOT/config/initializers bạn (giả sử Rails 2), một cái gì đó như thế này:

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

Mà sau đó sẽ cho phép bạn sử dụng phiên bản thân thiện hơn của DateTime.now.to_s(:human) trong mã của bạn.

+1

Đây là cách thanh lịch nhất để làm điều đó. Sử dụng strftime trên tất cả các nơi là lộn xộn. Trên thực tế mặc dù bạn chỉ có thể làm điều gì đó như thế này (ít tiết) '' 'ruby ngày :: DATE_FORMATS [: mdy] = "% B% d,% Y" Time :: DATE_FORMATS [: mdy] = "% B% d% Y" Thời gian :: DATE_FORMATS [: month_and_year] = "% B% Y" Thời gian :: DATE_FORMATS [: pretty] = lambda {| time | time.strftime ("% a,% b% e ở% l:% M") + time.strftime ("% p") .mã số } '' ' – Subimage

+2

Cần lưu ý rằng những thay đổi trong tệp cấu hình chỉ có hiệu lực sau khi khởi động lại máy chủ, không giống như thay đổi trong các mô hình, khung nhìn và bộ điều khiển. – CurlyCorvus

6

Tôi nghĩ rằng bạn có thể sử dụng .strftime:

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

này nên cung cấp cho "The date is 09/09/10". Xem here để biết danh sách các mã định dạng tuyệt vời cho .strftime.

0

Nếu bạn không cần phải đầy đủ năm bạn có thể thử Time.now.strftime('%D')

Các vấn đề liên quan