0

我有一些时间在我的视野中展示

<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
4

2 回答 2

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")根据链接更改为

于 2013-07-29T18:59:19.960 回答
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)
于 2013-07-29T19:01:02.680 回答