2012-04-27 9 views
2

私はRuby on Rails v3.2.2を使用していますが、<day_number> <month_name> <year_number>のようにデータを表示したいと考えています。つまり、datetimeというデータベーステーブルの列があり、その値を変更する場合は、たとえば2012-04-27 00:00:00から27 april 2012に変更したいと考えています。`datetime`値を` 2012-04-27 00:00:00`から `2012年4月27日 'に変更するにはどうすればいいですか?

どうすればいいですか?

+0

Errは、なぜあなたはちょうど 'date'代わりに' datetime'のようにそれを保存しませんか? –

+0

@Andrew Marshall - できるだけ正確にしたいからです。 ;-) – Backo

答えて

5

標準的な方法は、レールのローカリゼーションを使用することです。

モデル

I18n.l(datetime, :format => :short) 

コントローラ

I18n.l(datetime, :format => :long) 

<%= l(datetime), :format => :custom %> 

設定/ロケール/ en.yml

en: 
    time: 
    formats: 
     long: "%A %B %d %Y | %I:%M %p GMT" 
     short: "%d %B %Y, %H:%M GMT" 
     custom: "your custom format" 
    date: 
    formats: 
     short: "%d %B %Y" 
     long: "%A %B %d %Y" 
     custom: "your custom format" 

あなたの場合、フォーマットは "%d%A%Y"でなければなりません。

フォーマットを変更したい場合は、使用しているすべての日時を1か所で変更できます。

+0

技術的に、どのように「%A%B%d%Y ...」という名前が付けられていますか、私が必要とする最良のフォーマットを選択するためのドキュメントがどこにありますか? – Backo

+0

これを試してみてくださいhttp://snippets.dzone.com/posts/show/2255またはhttp://apidock.com/ruby/DateTime/strftimeまたはキーワードでgoogleを試す[strftime ruby​​] :) – Suborx

1

あなたがメソッドを使用することができます

str_name.strftime("%d %A %Y") 
関連する問題