【问题标题】:strftime formatting with Ruby/Rails -- Lowercase am/pm使用 Ruby/Rails 格式化 strftime -- 小写 am/pm
【发布时间】:2011-05-27 22:26:19
【问题描述】:

我有以下几点:

@comment.created_at.strftime("%I:%M %p %b %d")

输出:12 月 19 日上午 10:32

我想输出一个小写的 am,例如:12 月 19 日上午 10:32

关于如何使用 ruby​​/rails 做到这一点的任何想法?

谢谢

【问题讨论】:

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


    【解决方案1】:

    尝试使用 %P 而不是使用 %p

    【讨论】:

      【解决方案2】:

      使用 %P 代替 %p。这适用于 ruby​​ 1.9,但对于 1.8,您需要使用 .sub(' AM ', ' am ').sub(' PM ', ' pm ') 或类似名称。

      【讨论】:

      • 有趣。我在 Heroku 上,不确定使用的是哪个版本或 ruby​​。
      • <%= RUBY_VERSION %> 应该给你一个提示 ;-)
      • Heroku 上的 ruby​​ 1.9 v 都是测试版,所以我现在想避免这种情况。
      【解决方案3】:

      您可以将它们保存到不同的变量中并执行以下操作:

      a = @comment.created_at.strftime("%I:%M") b = @comment.created_at.strftime("%P").downcase c = @comment.created_at.strftime("%b %d") e = a+b+" "+c #=> 10:32am Dec 19

      【讨论】:

        【解决方案4】:

        This postthis 应该可以满足您的需求。您基本上在初始化程序中定义了自定义时间格式。

        如果您想从 API 获取它,它们会显示 Time 类中的默认值

        【讨论】:

        • 为什么这个答案被赞成?它完全忽略了问题的重点?;-)
        【解决方案5】:

        似乎在 ruby​​ 1.9 中您可以使用 %P 代替 %p 并且不要忘记删除空格

        @comment.created_at.strftime("%I:%M%P %b %d") =>12 月 19 日上午 10:32

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-11-14
          • 1970-01-01
          • 2011-10-14
          • 2018-04-09
          • 2013-08-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多