2010-03-14 50 views
20

Tôi muốn ngày của tôi ở định dạng dd/mm/năm trong trường văn bản. Tuy nhiên, chúng hiện hiển thị là 2010-03-26.Định dạng ngày đường ray trong trường biểu mẫu

Có cài đặt chung mà tôi có thể đặt để thay đổi điều này không?

Tôi đã thử cách sau, có vẻ như cập nhật phương thức .to_s, nhưng các trường biểu mẫu vẫn giữ nguyên.

ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS.merge!(:default => '%m/%d/%Y') 

Cảm ơn

Trả lời

2

Tôi không biết nếu có một môi trường toàn cầu cho bất cứ nơi nào đó, tôi chỉ làm điều đó trong ERB.

<%= text_field_tag("air_date_date", air_date.blank? ? "" : air_date.strftime("%m/%d/%Y"), :class => "date-input text") %> 

Hoặc, bạn có thể đưa yếu tố này vào chức năng trợ giúp để làm cho nó KHÔ.

32

Bạn phải đăng ký định dạng default trong bộ khởi tạo.

Thêm dòng này vào config/initializers/date_time_formats.rb.

Date::DATE_FORMATS[:default] = '%m/%d/%Y' 

# if you want to change the format of Time display then add the line below 
Time::DATE_FORMATS[:default]= '%m/%d/%Y %H:%M:%S' 

# if you want to change the DB date format. 
Time::DATE_FORMATS[:db]= '%m/%d/%Y %H:%M:%S' 

Bây giờ trong script\console cho phép kiểm tra định dạng.

>> Date.today.to_s 
=> "03/14/2010" 

>> Time.now.to_s 
=> "03/14/2010 13:20:55" 
+0

Điều này phù hợp với tôi. Ngoài ra những người đứng đầu lên về nhanh chóng xác nhận kết quả trong script \ console là hữu ích. Cảm ơn bạn. – tstyle

+0

Hoạt động tốt với 'Ngày' và' Thời gian'. Điều gì về các giá trị cơ sở dữ liệu? –

+0

Sử dụng 'Thời gian :: DATE_FORMATS [: db]' để đặt định dạng DB. –

0

Tôi biết đây là một câu hỏi hết sức cũ, nhưng bạn có thể sử dụng date_field thay vì text_field. Có lẽ đó không phải là một lựa chọn khi bạn hỏi câu hỏi này ban đầu.

Nó hiển thị ngày trong mm/dd/yyyy, đó là ý định của bạn.

<%= date_field :column_name %>

0

Các date_select hình thức helper cung cấp một "xương trần" ngày selector.

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