問題
PHPで西暦を和暦に変換するには?
解決策
データフォーマットを「Ymd」に変換後、値に応じて各和暦用の処理を行う。
西暦を和暦に変換
PHPで西暦を和暦に変換する記述例をご紹介します。
今回は元のデータフォーマットを「Ymd」としての記述例です。
データフォーマットを「Ymd」にしておく。
データフォーマットを「Ymd」にしておきます。
$date -> format('Ymd');
年、月、日それぞれの値を変数に格納しておく。
年、月、日それぞれの値を変数に格納しておきます。
$y = substr( $date, 0, 4 );
$m = substr( $date, 4, 2 );
$d = substr( $date, 6, 2 );
値に応じて、いずれかの元号を付与して返す。
年、月、日それぞれの値を変数に格納しておきます。
if ( $date >= 20190501 ) {
$wname = "令和";
$y -= 2018;
} elseif ( $date >= 19890108 ) {
$wname = "平成";
$y -= 1988;
} elseif ( $date >= 19261225 ) {
$wname = "昭和";
$y -= 1925;
} elseif ( $date >= 19120730 ) {
$wname = "大正";
$y -= 1911;
} elseif ( $date >= 18680125 ) {
$wname = "明治";
$y -= 1867;
}
$date = $wname.(string)$y."年".(string)$m."月".(string)$d."日";
return $date;
参照
以下のサイトが、より詳しく解説してくれています。
コメント