Rails日期格式在表单域中

时间:2010-03-14 17:53:08

标签: ruby-on-rails ruby

我想在文本字段中以mm / dd / year格式显示日期。但是,它们目前显示为2010-03-26。

我可以设置一个全局设置来改变它吗?

我尝试了以下内容,它似乎更新了.to_s方法,但表单字段保持不变。

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

由于

4 个答案:

答案 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;日期选择器。