将日期时间更改为月,日,年

时间:2014-01-16 13:20:55

标签: ruby-on-rails datetime ruby-on-rails-4

我正在我当前的Rails网站上集成一个新的引导程序模板。我在我的博客上工作,现在我的帖子显示为"10 minutes ago"。我想更改日期格式,例如Dec, 21, 2012 in separate lines

新模板仅通过硬编码日期来完成此操作:

  <div class="blog-date">
    <span class="blog-date-month">Dec</span>
    <span class="blog-date-day">21</span>
    <span class="blog-date-year">2012</span>
  </div>

我获取日期的方式是使用:

time_ago_in_words(post.created_at)

我的问题是如何在月份,年份和日期等单独元素中提取帖子的创建日期?

1 个答案:

答案 0 :(得分:3)

time_ago_in_words会将Time对象转换为人类可表示且易于阅读的字符串。

在你的情况下你不需要那个。您只需使用post.created_at上的日期/时间方法即可获取年,月和日:

  • post.created_at.year
  • post.created_at.mday
  • post.created_at.month

请注意,这些将以数字形式返回结果(例如12而不是Dec)。您可以使用I18n utils来取回缩写名称,如下所示:

  • I18n.t("date.abbr_month_names")[post.created_at.month]

您可以使用strftime将时间转换为字符串:

  • post.created_at.strftime('%b')

但请注意,如果你关心国际化,这将不会通过Rails的I18n引擎。