記事

Railsで表示する日付のフォーマットを変える

普通だと

p = post.published_on.strftime("%Y年%m月%d日 %H時%M分") 

だがあのRailsたんはやっぱり一味違かった

Railsのレールに乗ったやり方

config/initializers/time_formats.rbを新規作成し以下を追加

Time::DATE_FORMATS[:default] = '%Y/%m/%d %H:%M'
Time::DATE_FORMATS[:datetime] = '%Y/%m/%d %H:%M'
Time::DATE_FORMATS[:date] = '%Y/%m/%d'
Time::DATE_FORMATS[:time] = '%H:%M:%S'
Date::DATE_FORMATS[:default] = '%Y/%m/%d'

Railsを再起動する

設定変更前(デフォルト)

2.2.1 :001 > Time.now.to_s
 => "2015-10-21 13:09:56 +0900" 

変更後

2.2.1 :001 > Time.now.to_s
 => "2015/10/21 13:10" 

ビューにも使える

p = post.to_s(:date)

ちゃんと2017/12/08と表示されるはず

フォーマットはstrftime()と同じ