ヘルパークラスを作成
- app/helpers.php を新規作成
<?php
use Carbon\Carbon;
if (!function_exists('toJapaneseEra')) {
function toJapaneseEra($date) {
if (!($date instanceof Carbon)) {
$date = new Carbon($date);
}
$year = $date->year;
$month = $date->month;
$day = $date->day;
if ($year >= 2019 || ($year == 2019 && $month >= 5)) {
$era = '令和';
$year -= 2018;
} elseif ($year >= 1989 || ($year == 1989 && $month >= 1)) {
$era = '平成';
$year -= 1988;
} elseif ($year >= 1926 || ($year == 1926 && $month >= 12)) {
$era = '昭和';
$year -= 1925;
}
return "{$era}{$year}年{$month}月{$day}日";
}
}
年や和暦はconfigファイルやテーブルで管理した方がいいかもだけど
ややこしくなるので本記事では直書き
composer.jsonに上記helper.phpのパスを追記
- composer.json
"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
},
// 🌟 追加
"files": [
"app/helpers.php"
]
},
ファイルをロード
composer dump-autoload
使用するModelクラスにキャストを追加
- App/Models/User.php
// Laravel9まで
protected $dates = ['birthday'];
// Laravel10以降
protected $casts = [
'birthday' => 'datetime'
];
bladeで表示する
{{ toJapaneseEra($user->birthday) }}