所以我有一个模型实例,其中包含一个日期时间属性。我使用以下方式在我的视图中显示它:
<%= @instance.date.to_date %>
但是它显示为:2011-09-09
我希望它显示为:2011年9月9日
如何实现呢?
谢谢!
<%= @instance.date.to_date %>
但是它显示为:2011-09-09
我希望它显示为:2011年9月9日
如何实现呢?
谢谢!
<%= @instance.date.strftime("%B %d, %Y") %>
这将给你 "September 9, 2011"。
如果你真的需要日期上的序数(如“th”,“rd”等),你可以这样做:
<%= @instance.date.strftime("%B #{@instance.date.day.ordinalize}, %Y") %>
有一个更简单的内置方法可以实现您想要的日期样式。
<%= @instance.datetime.to_date.to_formatted_s :long_ordinal %>
to_formatted_s方法默认接受各种格式属性选项。例如,来自Rails API的:
date.to_formatted_s(:db) # => "2007-11-10"
date.to_s(:db) # => "2007-11-10"
date.to_formatted_s(:short) # => "10 Nov"
date.to_formatted_s(:long) # => "November 10, 2007"
date.to_formatted_s(:long_ordinal) # => "November 10th, 2007"
date.to_formatted_s(:rfc822) # => "10 Nov 2007"
你可以在这里看到完整的解释。
<%=l @instance.date %>
en:
date:
formats:
default: ! '%d.%m.%Y'
long: ! '%a, %e. %B %Y'
short: ! '%e. %b'
要在视图中使用除默认格式之外的其他格式,请使用:
<%=l @instance.date, format: :short %>
ActiveSupport::Inflector.ordinalize(@instance.date.day)