在Rails 3.1中更改created_at的格式?

时间:2011-09-10 15:05:43

标签: ruby-on-rails date timestamp ruby-on-rails-3.1

我在运行Rails 3.1的基本应用程序中调用创建记录的日期。

<%= @issue.created_at %>

以上输出以下时间戳:

2011-09-10 14:44:24 UTC

改变显示方式的最简单方法是什么?我想要这样的东西:

10 Sept. 2011

然后以某种不同的格式再次调用它:

14:44

所以我可以调用它两次并将两者合并在一起:

10 Sept. 2011
14:44

我想要两次调用它而不是创建一个帮助器来格式化两行日期/时间的原因是允许我在某些地方调用日期而在其他地方调用日期。

6 个答案:

答案 0 :(得分:76)

最简单的方法是使用strftime函数

# Day / Month / Year
@issue.created_at.strftime("%d %b. %Y")
# Hour:Min
@issue.created_at.strftime("%H:%M")

如果你发现自己做了很多事,你可以将这两个电话放在单独的帮助中。

答案 1 :(得分:13)

我会用I18n。看一些示例http://guides.rubyonrails.org/i18n.html#adding-date-time-formats。这是一种清晰灵活的格式化日期和时间的方式。

答案 2 :(得分:9)

<%= l(@issue.created_at, :format=>:your_format) %>
<\ n>在语言环境YAML(app / config / locale / country_id.yml)中你必须声明

time:
 formats:
  your_format: '%d %b. %Y'
  your_another_format: '%I:%M'

日期格式应在i18n YAML定义文件中声明,以便于配置,并且可以找到其他日期格式here

答案 3 :(得分:7)

查看http://www.foragoodstrftime.com/,了解自定义日期/时间格式@spike

的简便方法

答案 4 :(得分:1)

你可以这样做:

@issue.created_at.to_date.iso8601

答案 5 :(得分:0)