【问题标题】:Change rails time formatting更改 Rails 时间格式
【发布时间】:2013-07-29 18:56:18
【问题描述】:

我有时会在我的视图中显示

<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

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3


    【解决方案1】:

    你总是可以创建一个助手

    module ApplicationHelper
       def display_date(input_date)
        if !input_date
          return ''
        end
    
        return input_date.strftime("%d/%m/%Y")
      end
    
    end
    

    然后像&lt;%= display_date time_var %&gt;一样在您的视图中调用
    我的示例没有将日期格式设置为 AM/PM 样式,但您可以在文档中轻松找到如何执行此操作,例如您发布的链接:t.strftime("at %I:%M%p") #=&gt; "at 08:37AM"

    我的方法可以根据链接改成return input_date.strftime("%I:%M%p")

    【讨论】:

      【解决方案2】:

      最简单的方法是这样做:

      something.foo_time.strftime("%I:%M%p")
      

      但是,我会在以下 URL 中查看 Rails 的 DATE_FORMATS 并使用默认值(如果存在),或者通过初始化程序添加它来创建自己的。

      http://api.rubyonrails.org/classes/Time.html

      那么你可以这样做:

      something.foo_time.to_s(:time)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-12
        • 2022-01-23
        • 1970-01-01
        • 1970-01-01
        • 2017-07-21
        • 2021-11-20
        • 1970-01-01
        相关资源
        最近更新 更多