2011-03-14 48 views
9

在Ruby中默认的日期格式为YYYY-MM-DD,但我需要他们能够DD/MM/YYYY视图更改日期格式DD/MM/YYYY

我已经写了一在config/initializers为DATE_FORMAT文件:

Time::DATE_FORMATS.merge!(:uk_format => '%m/%d/%Y') 

这并没有工作,因为我需要调用date.to_s(:uk_format)为了使用这种格式。但由于我使用的是<%= f.text_field :paymentDate %>来显示日期,我不确定我可以将to_s添加到这种情况。

有人可以帮我一把。


编辑1

其实date.to_s(:uk_format)也不管用,怎么用正确的初始化.....?

回答

27

参见:Change default Ruby Time format

改编我的答案链接到上面指定的日期和格式:


由于您使用Rails的,利用国际化支持的:http://guides.rubyonrails.org/i18n.html#adding-date-time-formats

# config/locales/en.yml 
en: 
    date: 
    formats: 
     default: "%d/%m/%Y" 

然后,您可以拨打I18n.l Date.today获取格式化的日期。或者在您看来,您可以使用<%= l @foo.created_at %>

+3

什么,这是否影响得到呢? – Souloikj 2011-03-14 19:51:47

+0

作为输出帮助程序,I18n可以处理任何数据,无论数据来源如何,所以是的,它可以很好地显示数据库中的日期。将日期转换为显示格式进行存储是一个非常糟糕的主意,但是,如果这就是您的意思。 – coreyward 2012-04-28 21:18:34

+0

如何获取表单域中反映的默认日期格式(例如,在模型上编辑日期属性时)? – findchris 2013-02-02 16:10:15

2

试试这个:

有关从数据库中调用日期
Time::DATE_FORMATS.merge!({:db => '%m/%d/%Y', :uk_format => '%m/%d/%Y'}) 
Date::DATE_FORMATS.merge!({:db => '%m/%d/%Y', :uk_format => '%m/%d/%Y'})