在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
为什么格式不同?
答案 0 :(得分:1)
在config / initializers / time_formats.rb中,写:
Time::DATE_FORMATS[:article] = "%a, %d %B %Y"
答案 1 :(得分:0)
<%=
在to_s
对象上调用Date
,无论在何处调用,都会生成2009-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。
您还可以在应用程序区域设置中定义默认日期格式。