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_sDate2009-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 回答