fluid_27’s blog

勉強した内容をアウトプットするためのブログ

railsで日時のフォーマットにlメソッドを使ってみた

 

ポートフォリオのアプリでカレンダータイプの予約機能を実装していたのですが

、その際に日時を表すために

 

<%= user.created_at.strftime("%Y / %m / %d  %H : %M") %>

 

というように、strftimeを使って成形していました。

が、@jnchitoさんのqiitaでもっと便利な方法が紹介されていました。

https://qiita.com/jnchito/items/831654253fb8a958ec25

 

lメソッド

<%= l user.created_at %>

とするだけで、

config/locales/ja.yml に書かれているフォーマットを適用してくれるとのことです!便利!

 

逆にいうと、

lメソッドを使うためには

1. config.application.rb に

config.i18n.default_locale = :ja

 

と、

2. config/locales/ja.yml に

ja:

  time:

    formats:

      default: "%Y / %m / %d  %H: %M"

などと記述しておかないいけないみたいです。

 

上記のように設定しておくと、

<%= l user.created_at %>

2021/ 06/ 13  12:41

という感じで表示されます。

 

他のフォーマットも使えるように

ちなみに、config/locales/ja.yml に

ja:

  time:

    formats:

      default: "%Y / %m / %d  %H: %M"

      short: "%m/ %d  %H: %M"

などとしておけば、

 

<%= l user.created_at, format: :short %>

とすると

config/locales/ja.yml で設定した :shortの形式。

つまり、上記でいうと

2021/ 06  12:41

 というように表示されます。

 

めっちゃ便利!

 

詳しくは @jnchitoさんのqiitaをご参考ください。

https://qiita.com/jnchito/items/831654253fb8a958ec25