Laravelで日付の項目のフォーマットを直したい
日付項目
生年月日などの日付項目はユーザー登録などで定番ですね。
databaseと、表示する形式が違うことも結構あるので、コントローラーのメソッドの中で、viewに返すためにフォーマットを変えたいと思いました。
PHPのメソッド format() を使う
具体的には、 2011-10-10 00:00:00
という形式でdatabaseに保存されている項目を取得後に、 20111010
という数字の羅列の形式に変えたいと思いました。
さて、どうやるのか?
Laravelでは、dateやtimeの項目は、Carbonという便利なクラスがあるらしく、こちらで、「次の日」「来年」といった日付での計算なども容易にできるようになっているようでした。
ただし、フォーマットを変えるには、そんな高度なものすら必要内容でした。
PHPの format()
というメソッドを用いれば十分でした。
形式はPHPのdateメソッドのところにあり
私は、 yyyymmdd
という形式に変換したかったのですが、この場合、PHPのdate()メソッドの説明のところを見れば、書いてありました。
Ymd
で良いようです。
dateメソッドは、データ型の変数などを作る時に使うメソッドのようです。
formatメソッドは、date()などで作られたdate型のオブジェクトについて、フォーマットを変更できるメソッドのようです。
使い方は、例えば、birth
というデータ型の変数があったとします。
$birth->format('Ymd');
でOK.
これで、無事にviewに 20111010
と表示できることを確認しました。
地味だけど、結構調べるのに時間かかりました。
date型は色々と使ってみて覚えていく必要がありそうです。