22

Rails のタイムスタンプを人間が読みやすい形式にするにはどうすればよいですか? 単純に印刷するcreated_atupdated_at、次のように表示すると:

<% @created = scenario.created_at %>

それから私は得るでしょう:

2009-03-27 23:53:38 UTC

4

6 に答える 6

24

( strftimeRuby の Time から) およびto_formatted_s(Rails の ActiveSupport から) 関数は、時間の書式設定のすべてのニーズを処理できるはずです。

于 2009-03-29T01:42:06.040 に答える
8

I18n 機能を見てみましょう。ビューで次のことができます。

<%= localize(scenario.created_at, :format => :long) %>

フォーマットはロケールで定義されています。 より詳しい情報

于 2011-04-28T07:54:18.577 に答える
7

また

<%= l scenario.created_at, :format => :sample) %>

そして locales/en.yml (言語によって異なります)

  en:
    time:
      formats:
        sample: '%d.%m.%Y'

詳細については、http: //guides.rubyonrails.org/i18n.htmlを参照してください。

于 2012-05-22T13:35:42.117 に答える
-1

タイムスタンプ ファイルを変更する必要があります。私の場合、このファイルは にあります/usr/local/rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.2.0/lib/active_record/timestamp.rb。次の行を検索する必要があります。

self.class.default_timezone == :utc ? Time.now.utc : Time.now

これを次のように変更します。

self.class.default_timezone == :utc ? Time.now.utc : Time.now.strftime('%Y-%m-%d %H-%M-%S')

トリックは、strftimeメソッドでフォーマットを変更することです。必要に応じてフォーマットを変更できます。

これで、レールはフォーマットを使用して「updated_at」列を更新します。

于 2015-09-18T14:11:43.700 に答える