C:blanc
投稿日
2022年7月16日
更新日
2022年7月26日
Tips PHP

元号

ここまで丁寧にする必要もないが
PHP
<?php
$today = date('Y-m-d');

$results = (function(string $entry) : array {
	$wday_array = ['日', '月', '火', '水', '木', '金', '土'];

	$date_reiwa  = new DateTime('2019-05-01');
	$date_heisei = new DateTime('1989-01-08');
	$date_showa  = new DateTime('1926-12-25');
	$year_reiwa  = (int) $date_reiwa->format('Y');
	$year_heisei = (int) $date_heisei->format('Y');
	$year_showa  = (int) $date_showa->format('Y');

	$date = new DateTime($entry);
	$year = (int) $date->format('Y');
	$mon  = (int) $date->format('n');
	$day  = (int) $date->format('j');
	$wday = (int) $date->format('w');
	$wday_ja = $wday_array[$wday];

	if ($date_reiwa <= $date) { // 令和
		$era_ja = '令和';
		$year_ja = $year - $year_reiwa + 1;
	} else if ($date_heisei <= $date) { // 平成
		$era_ja = '平成';
		$year_ja = $year - $year_heisei + 1;
	} else if ($date_showa <= $date) { // 昭和
		$era_ja = '昭和';
		$year_ja = $year - $year_showa + 1;
	} else {
		$era_ja = '';
		$year_ja = $year;
	}

	if (1 === $year_ja) {
		$year_ja = '元';
	}

	return [
		'year'    => $year,
		'mon'     => $mon,
		'day'     => $day,
		'wday'    => $wday,
		'era_ja'  => $era_ja,
		'year_ja' => $year_ja,
		'wday_ja' => $wday_ja,
		'date_ja' => $era_ja . $year_ja . '年' . $mon . '月' . $day . '日(' . $wday_ja . ')',
	];
})($today);

print_r($results);
追伸
このクラス(DateTime)の代わりに、DateTimeImmutable を使うことを推奨します。
https://www.php.net/manual/ja/class.datetime.php
だって