2

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

没有UTC的Rails 3默认日期时间格式

我知道我可以添加

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 %>

它会给我正确的格式。

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

4

2 回答 2

0

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

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

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

没有对其进行特殊处理,例如localizeor to_s,这是应用格式化的地方。

于 2013-01-26T04:58:17.103 回答
-1

如果日期看起来像timestamp( 2013-01-25 07:45:21 UTC),

您可以执行以下操作来查看本地化时间戳:

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

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

<%= f.date_select :date, :order => [:day, :month, :year] %>
于 2013-01-25T09:21:07.107 回答