我想在文本字段中以mm / dd / year格式显示日期。但是,它们目前显示为2010-03-26。
我可以设置一个全局设置来改变它吗?
我尝试了以下内容,它似乎更新了.to_s方法,但表单字段保持不变。
ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS.merge!(:default => '%m/%d/%Y')
由于
答案 0 :(得分:33)
您必须在初始化程序中注册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"
答案 1 :(得分:1)
我不知道在任何地方是否有全局设置,我只是在ERB中进行。
<%= text_field_tag("air_date_date", air_date.blank? ? "" : air_date.strftime("%m/%d/%Y"), :class => "date-input text") %>
或者,您可以将其分解为辅助函数以使其干燥。
答案 2 :(得分:0)
我知道这是一个非常古老的问题,但您可以使用date_field
代替text_field
。当你最初提出这个问题时,也许这不是一个选择。
它以mm/dd/yyyy
显示日期,这是您的意图。
<%= date_field :column_name %>
答案 3 :(得分:0)
date_select
表单助手提供了一个&#34;裸骨&#34;日期选择器。