ウサヲブログ  HOME

ウェブ制作に関わる備忘録などを綴ります

このページの位置: HomeWordpress「日付を西暦から和暦に変換してみる」の記事

日付を西暦から和暦に変換してみる

functionsphpについて

ウサヲです。久しぶりに脳みそをフル回転させました。

西暦の年月日を和暦元号付年月日に変換する処理をしてみました。

こうやってみたんだ!

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

ウサヲから心を込めて、感謝の気持ちを送ります。大変詳しい解説をありがとうございました!!

コメントを残す

日本語でお願いします。「テスト投稿」のような短い文は無視されます。

TOP