我有时会在我的观点中展示
<td><%= something.foo_time %></td>
<td><%= something.bar_time %></td>
现在它们显示为
2000-01-01 05:24:00 UTC
2000-01-01 15:24:00 UTC
但由于我没有收集日期,我想只显示时间,但是没有年份和时区的AM / PM风格。
我尝试过使用strf格式http://www.ruby-doc.org/core-2.0/Time.html#method-i-strftime,但它不起作用
<td><%= something.foo_time("%I:%M%p") %></td>
我也试过
<td><%= something.foo_time "%H:%M:" %></td>
它也不起作用。
我怎样才能从
开始2000-01-01 15:24:00 UTC
要
3:24 PM
答案 0 :(得分:1)
你总是可以创建一个帮手
module ApplicationHelper
def display_date(input_date)
if !input_date
return ''
end
return input_date.strftime("%d/%m/%Y")
end
end
然后在您的视图中调用<%= display_date time_var %>
我的示例没有将日期格式化为AM / PM样式,但您可以在文档上轻松找到如何执行此操作,例如您发布的链接:t.strftime("at %I:%M%p") #=> "at 08:37AM"
根据链接
,我的方法可以更改为return input_date.strftime("%I:%M%p")
答案 1 :(得分:1)
最简单的方法是:
something.foo_time.strftime("%I:%M%p")
但是,我会在以下URL中查看Rails的DATE_FORMATS,如果存在则使用默认值,或者通过初始化程序添加它来创建自己的。
http://api.rubyonrails.org/classes/Time.html
然后你可以这样做:
something.foo_time.to_s(:time)