お問合わせ開発ブログ株式会社Nextatのスタッフがお送りする技術コラムメインのブログ。09:08【Laravel】DBから取得した日付型データを文字列に変換するこんにちは、スズキです。Laravelを利用している際に、DBから取得した日付型のデータに対し、「YYYY年MM月DD日」形式のような任意の形式の文字列に変換したい場合ってありますよね?今回はこの方法を紹介します。DBテーブルtest_tablesがあり、test_tables上にpublic_dateというDateTime型のフィールドがあったとします。$targetRow->public_date->format('Y-m-d');しかし、残念なことに、取得結果の$targetRow->public_dateは標準ではDateTime型になっていません。そのため、上記コードを実行するとformatメソッドを呼びだそうとしたタイミングでエラーで落ちてしまいます。いって、DateTime型のデータを取ってきているのに、取得したデータをPHPのDateTime型に置き換える処理をわざわざ記述するのは面倒です。実は、Laravel先生はこのような要望のために、日付型データに変換してくれる便利な機能を提供してくれています。方法はとても簡単です。対象テーブルのモデルクラスに対し、以下のように$datesプロパティに目的のDateTime型フィールドの名前を記載するだけでOKです。//}上記のように$datesプロパティを設定していると、$datesプロパティが指すフィールドに対し、データを取得した際にDateTime型のラッパークラスであるCarbonクラスのデータに置き換える処理を自動で行ってくれます。そのため、以下のコード(先ほどと同じコードです)の場合も、取得結果に対し、formatメソッドを直接利用することができます。$targetRow->public_date->format('Y-m-d');さあ、これで目的の日付文字列を取得することができました。