1

Rails では、同じコードを使用していても、コンソールのタイムスタンプが実際の html ビューと異なって見えることがわかりました。私が本当に愚かなことをしていない限り:

>> article = News.first
=> #<News id: 1, title: "Testing", body: "yadda yadda", role_id: 1, created_at: "2009-04-12 05:33:07", updated_at: "2009-04-12 05:33:07">
>> article.created_at
=> Sun, 12 Apr 2009 05:33:07 UTC +00:00
>> article.created_at.to_date
=> Sun, 12 Apr 2009

そしてビューで:

<% for article in @news %>
    <% @current_date = article.created_at.to_date %>
    <% if @current_date != @date %>
        <%= @current_date %>
        <% @date = @current_date %>
    <% end %>

出力は次のようになります。

2009-04-14

フォーマットが異なるのはなぜですか?

4

2 に答える 2

1

config/initializers/time_formats.rb に、次のように記述します。

Time::DATE_FORMATS[:article] = "%a, %d %B %Y"
于 2009-04-16T05:29:15.687 に答える
0

<%=オブジェクトの呼び出し。どこで呼び出さto_sれても、次のようになります。Date2009-04-14

>> Date.today
=> Tue, 14 Apr 2009
>> Date.today.to_s
=> "2009-04-14"

を使用しないと何が呼び出されるのか本当にわかりませんto_s

更新:今、私は知っています。to_sまたは同等のものを使用しない場合は、日付オブジェクトをirb呼び出します。inspect

>> Date.today.inspect
=> "Tue, 14 Apr 2009"

更新 2:

@current_dateビューで@current_date.to_s(または) に置き換えることができ@current_date.to_s(:format)ます。形式は、short、long、db、long_ordinal、rfc822、または number です。

アプリケーションのロケールでデフォルトの日付形式を定義することもできます。

于 2009-04-14T12:41:30.360 に答える