作成日時を表示しよう!
掲示板の作成日時を制作します。 何も設定を変えずにcreated_atの時間を見ると、UTC(世界標準時)で出てきてしまいます。そのため、いくつか変更や設定をすることがあるので観ていきます。
タイムゾーンの変更
最初にタイムゾーンを日本時間に設定します。
class Application < Rails::Application config.time_zone = 'Asia/Tokyo' # タイムゾーンを日本時間に設定 end
UTCから変更することができましたが、まだまだ進めます。
読みやすいフォーマットへ
日本人の読みやすいフォーマットに変更していきます。
Railsを使っているため、便利に使えるlメソッド
を使っていきます。
使い方は、
<%= l board.created_at %>
のように、l
を使いたいところの前に置くだけですが、これだけではなんの変化もありません。次に何をするのか。
ロケールの設定
まずは、日本人が読みやすい書式にするため、アプリケーションのロケールを:ja
に変更します。
ロケールとは、あるネイティブ言語環境の明示的なモデルおよび定義のことです。ロケールの概念は、http://opengroup.org からアクセスできる POSIX 規格に明示的に定義されて含まれています。
class Application < Rails::Application config.i18n.default_locale = :ja # ロケールを日本に設定 end
次に、config/locales/ja.yml
というファイルを作り、
ja: time: formats: default: "%Y/%m/%d %H:%M:%S"
とすることで、日本人向けの書式で日時が表示されます。 さらに、表示するものを短くすることも可能です。
ja: time: formats: default: "%Y/%m/%d %H:%M:%S" short: "%m/%d %H:%M"
と、して、
<%= l board.created_at, format: :short %>
としてあげると、月日時分だけの短いものを表示させることも可能です。