2

私の質問はこのSO問題に似ていますが、私の質問には答えません:

UTCなしのRails 3のデフォルトの日時形式

追加できることを理解しました

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

myenvironment.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

100%確信はありません。しかし、答えはおそらくノーです。Rails formhelper は、データベースにある値を与えるだけです。

参照用に値が取得される場所は次のとおりです。

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

フォーマットが適用されるlocalizeやなどの特別な処理はありません。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 に答える