Rails 3 表单中的日期格式



我的问题类似于这个SO问题,但它没有回答我的问题:

Rails 3 默认日期时间格式,不带 UTC

我明白我可以添加

Time::DATE_FORMATS[:default] = "%Y/%m/%d"

到我的environment.rb,它会相应地更改我的默认时间格式。

因此,当我这样做Time.now.to_s时,我会得到正确的格式。

但是,我的问题是,为什么这不适用于form_builder。例如:

<%= f.text_field :date %>

将返回完整的 UTC 时间戳:2013-01-25 07:45:21

我知道我可以做到这一点

<%= f.text_field :date, :value => @post.date.to_s %>

它会给我正确的格式。

但是这个解决方案对我来说似乎很笨拙。这真的是唯一的方法吗?

我不是100%确定。但答案很可能是否定的。rails formhelper只是为您提供数据库中的任何值。

下面是检索值以供参考的位置:

http://api.rubyonrails.org/classes/ActionView/Helpers/InstanceTag.html#method-i-to_input_field_tag

没有特殊的处理,例如 localizeto_s ,这是应用格式的地方。

如果日期看起来像一个timestamp2013-01-25 07:45:21 UTC ),

您可以对用于本地化时间戳的视图执行以下操作:

<%= localize(@post.date, :format => :long) %> 

根据您的问题,您可以尝试使用date_select而不是text_field.

<%= f.date_select :date, :order => [:day, :month, :year] %>

相关内容

  • 没有找到相关文章

最新更新