Формат даты Rails в поле формы
Мне нужны мои даты в формате mm/dd/year в текстовых полях. Однако в настоящее время они отображаются как 2010-03-26.
Есть ли глобальная настройка, которую я могу установить, чтобы изменить это?
Я попробовал следующее, которое, похоже, обновляет метод .to_s, но поля формы остаются неизменными.
ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS.merge!(:default => '%m/%d/%Y')
Спасибо
Ответы
Ответ 1
Вам нужно зарегистрировать формат 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"
Ответ 2
Я не знаю, есть ли глобальная настройка для этого в любом месте, я просто делаю это в ERB.
<%= text_field_tag("air_date_date", air_date.blank? ? "" : air_date.strftime("%m/%d/%Y"), :class => "date-input text") %>
В качестве альтернативы вы можете включить это в вспомогательную функцию, чтобы сделать ее СУХОЙ.
Ответ 3
Я знаю, что это очень старый вопрос, но вы можете использовать date_field
вместо text_field
. Возможно, это был не вариант, когда вы задавали этот вопрос изначально.
Он отображает дату в mm/dd/yyyy
, что является вашим намерением.
<%= date_field :column_name %>
Ответ 4
Помощник формы date_select
предоставляет селектор даты "голые кости".