2011-09-10 55 views
25

我在運行Rails 3.1的基本應用程序中調用創建記錄的日期。在Rails 3.1中更改created_at的格式?

<%= @issue.created_at %> 

上述輸出以下時間戳:

2011-09-10 14:44:24 UTC 

是什麼改變方式本顯示器的最簡單的方法?我想是這樣的:

10 Sept. 2011 

然後以某種方式再次與不同的格式稱之爲:

14:44 

這樣我就可以把它叫做兩次,合併兩個在一起:

10 Sept. 2011 
14:44 

我想兩次調用它的原因,而不是創建幫助者來格式化兩行日期/時間,這是因爲我允許我在某些地方調用日期,而在其他地方調用該日期。

回答

76

做最簡單的事情就是使用strftime函數

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

你可以把單獨的助手這兩個電話,如果你發現自己做了很多。

+1

我得到一個無方法錯誤,如果我把那些到問題的幫助文件。我應該改變我調用created_at的方式嗎? – dannymcc

+2

有些人可能會發現這個解決方案很有用:[strftime文檔](http://www.ruby-doc.org/core-1.9.3/Time.html#method-i-strftime) – stereoscott

+0

這應該是被接受的回答! –

9
<%= l(@issue.created_at, :format=>:your_format) %> 

在現場YAML(應用程序/配置/區域/ country_id.yml)您必須聲明

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

日期格式應爲便於配置您的i18n YAML定義文件中聲明,以及其他日期格式可以發現here

7

退房http://www.foragoodstrftime.com/一種簡單的方法來定製日期/時間格式@spike

+1

非常聰明.... – kstratis

+0

添加時間:: DATE_FORMATS [:default] =「%d /%m /%Y%H:%M」或者這個字符串的一些變化變成了文件在config/initializers中(你可以稱它爲date_and_time.rb) – Mark

1

你可以這樣做:

@issue.created_at.to_date.iso8601