【问题标题】:How do I convert a datetime (w/timezone) to a "month, day" string in ruby / rails?如何将日期时间(带时区)转换为 ruby​​ / rails 中的“月,日”字符串?
【发布时间】:2012-02-08 12:26:11
【问题描述】:

我在页面上显示用户消息,并且对于 UserA 已向其发送消息或从其接收消息的每个用户都有一个 created_at 时间。

对于每个对话线程,我想显示线程中最新消息的日期。我正在拉 created_at 时间,它显示如下:

2012-02-08 09:56:34 UTC

如果我在 created_at 末尾添加 to_date,我可以通过这种方式显示日期:

2012-02-08

我想知道一种简单的方法将其中任何一个转换成这样的东西:

February 8

8 February

February 8th

8th February

如果消息未在当年创建,则显示年份和日期

e.g. February 8, 2006

亲切的问候

【问题讨论】:

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


    【解决方案1】:

    使用strftime 方法格式化日期。例如,您可以说created_at.strftime("%B -d")Febraury 8

    【讨论】:

    • 谢谢,我用错了。最初我将 created_at 日期传递给 strftime 方法。傻。
    【解决方案2】:

    看看to_formatted_s

    如果你把它放在一个首字母中:

    Time::DATE_FORMATS[:month_and_day] = lambda { |time| Time.now.year == time.year ? time.strftime("%B #{time.day.ordinalize}") : time.strftime("%B #{time.day.ordinalize}, %Y")}
    

    然后您的视图可以使用正确的格式:

    created_at.to_s(:month_and_day)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 1970-01-01
      • 1970-01-01
      • 2014-10-13
      • 2017-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多