我正在我当前的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)
我的问题是如何在月份,年份和日期等单独元素中提取帖子的创建日期?
答案 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引擎。