2010-03-14 2 views
20

텍스트 필드의 날짜를 mm/dd/year 형식으로 지정하고 싶습니다. 그러나 현재 2010-03-26으로 표시됩니다.양식 필드의 레일 날짜 형식

변경할 수있는 전역 설정이 있습니까?

.to_s 메서드를 업데이트하는 것으로 보이지만 양식 필드는 동일하게 유지됩니다.

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

감사

답변

2

그 어느 곳의 전역 설정이있는 경우 나도 몰라, 난 그냥 ERB에 그것을 할.

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

또는 탈출구 기능으로 이것을 배제하여 DRY로 만들 수 있습니다.

32

이니셜 라이저에 default 형식을 등록해야합니다.

이 줄을 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' 

이제는 script\console에서 형식을 테스트 할 수 있습니다.

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

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

나를 위해 작동합니다. 또한 script \ console의 결과를 신속하게 검증하는 데 도움을주었습니다. 고맙습니다. – tstyle

+0

'Date'와'Time'에서 잘 작동합니다. 데이터베이스 값은 어떻습니까? –

+0

DB 형식을 설정하려면'Time :: DATE_FORMATS [: db]'를 사용하십시오. –

0

나는이 굉장히 오래된 질문 알아요,하지만 당신은 date_field 대신 text_field 사용할 수 있습니다. 아마 당신이이 질문을했을 때 선택 사항이 아니었을 것입니다.

그것은 당신의 의도 mm/dd/yyyy에 날짜를 표시합니다.

<%= date_field :column_name %>

0

date_select 폼 헬퍼는 "베어 뼈"날짜 선택을 제공합니다.