日付を西暦から和暦に変換してみる
2016-09-29 Wordpress functions.php 0

ウサヲです。久しぶりに脳みそをフル回転させました。
西暦の年月日を和暦元号付年月日に変換する処理をしてみました。
こうやってみたんだ!
1 まず、日付は9999/99/99を使います。日付や月の前に0があってもなくても問題ありませんが、とにかく”/”は必要です。
2 今回は投稿日付をその都度ゲットするので、get_the_time()関数を使います。ウサヲは get_the_time(‘Y/n/j’) を使いました。
3 そして、functions.phpに以下のソースをぺっぺと追加します。
/* 日付を西暦から和暦に変換する */ function wareki($ymd) { list($y,$m,$d) = explode("/",$ymd); $m = str_pad($m,2,0,STR_PAD_LEFT); $d = str_pad($d,2,0,STR_PAD_LEFT); $ymd = $y.$m.$d; if ($ymd <= "19120729") { $gg = "明治"; $yy = $y - 1867; } elseif ($ymd >= "19120730" && $ymd <= "19261224") { $gg = "大正"; $yy = $y - 1911; } elseif ($ymd >= "19261225" && $ymd <= "19890107") { $gg = "昭和"; $yy = $y - 1925; } elseif ($ymd >= "19890108") { $gg = "平成"; $yy = $y - 1988; } $strm = ltrim($m, '0'); $strd = ltrim($d, '0'); if ($yy == 1) { $yy = "元"; } $wareki = "{$gg}{$yy}年{$strm}月{$strd}日"; return $wareki; }
この↑ソースでは、西暦を和暦に変換した後、日付の前のゼロサプレスをし、また、年が1年の場合は元年となるように変換しています。明治から平成まで対応していますが、その後元号が変更になったら都度修正の必要があります。
4 そして、表示したいテンプレートに以下のように貼り付けます。もちろん(カッコ)の引数の中身はフォーマットを崩さなければ皆さん次第です。
<?php echo wareki(get_the_time('Y/n/j')); ?>
この処理にお世話になった方々
ウェブ活様
raining様
PHPBook様
ウサヲから心を込めて、感謝の気持ちを送ります。大変詳しい解説をありがとうございました!!