2010-09-03 75 views
2

我想更改幻想列的rails(created_at,modified_at)的默认时间戳,而不是2010-09-03 14:52:46 UTC我想更改它到2010年9月10日下午02:52。或者至少可以这样解析。更改魔术列的时间戳(Rails)

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

回答

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。恕我直言:这将是最有铁路的方式。

在你看来
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 %> 
+0

谢谢!这正是我所寻找的:-) – Gotjosh 2010-09-03 15:38:27

1

修改created_at日期没有问题,它会保留在您设置的位置,甚至可以在开始时覆盖它,但updated_atmodified_at可能会很棘手。每次保存模型时都会改变。如果你不想这种行为,约定建议切换到不同的名称。

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