2010-09-03 72 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可能會很棘手。每次保存模型時都會改變。如果你不想這種行爲,約定建議切換到不同的名稱。

如果您想調整日期的顯示方式,您需要配置默認的格式化程序。