更改魔术列(Rails)的时间戳

时间:2010-09-03 15:10:17

标签: ruby-on-rails ruby time

我想更改rails魔术列的默认时间戳(created_at,modified_at)而不是2010-09-03 14:52:46 UTC我想将其更改为2010年9月10日02:52下午。或者至少解析那个方式。

现在,我知道我可以通过操纵变量在视图中做到这一点,但是不是有更多的“铁路方式”我可以在模型中执行此操作,然后将其称为方法吗? / p>

2 个答案:

答案 0 :(得分:4)

class YourModel < ActiveRecord::Base
  def my_formated_date_time
    created_at.strftime("%B %d, %Y at %I:%M %p")
  end
end

或者您可以使用本地化格式。将其添加到您的config/locale/your_locale.yml。恕我直言:这将是最 railish 方式。

your_locale:
  time:
    formats:
      default: "%B %d, %Y at %I:%M %p"

然后在你看来做这个

<%=l @your_model.created_at %>
<!-- short for: -->
<%= I18n.localize @your_model.created_at %>

答案 1 :(得分:1)

修改created_at日期很好,它会在您设置时保留,并且您甚至可以在开始时覆盖它,但updated_atmodified_at可能会很棘手。每次保存模型时都会更改。如果您不想要此行为,则会建议切换到其他名称。

如果要调整日期的显示方式,则需要配置默认格式化程序。