PHP 西暦から和暦に変換して年号表示する

PHPで、西暦を和暦に変換するコード。

ただし、
1989年は、1月7日まで昭和64年ですが、平成元年として。
1926年は、12月24日まで大正15年ですが、昭和元年として。
それぞれ変換しています。

    echo $this->getWareki(1989);

    function getWareki($seireki){
        $nengo_year = array('平成' => 1989 , '昭和' => 1926 , '大正' => 1912 , '明治' => 1868 );
        foreach($nengo_year as $nengo => $year){
            if ($seireki >= $year){
                $wareki = $seireki - $year + 1;
                return $nengo . (($wareki==1)?"元":$wareki);
            }
        }
        return "";
    }

 

日時まで正確に算出したければ、次のように、タイムスタンプで。

    echo $this->getWareki2(strtotime("1912-7-30 00:00:00"))."<br>";;
    echo $this->getWareki2(strtotime("1926-12-25 00:00:00"))."<br>";;
    echo $this->getWareki2(strtotime("1912-7-30 00:00:00"))."<br>";;

    function getWareki2($timestamp){
        $nengo_year = array('平成' => 600220800 , '昭和' => -1357603200 , '大正' => -1812153600);
        foreach($nengo_year as $nengo => $ts){
            if ($timestamp >= $ts){
                $wareki = ((date('Y' , $timestamp) - date('Y' , $ts)) + 1) ;
                return $nengo . (($wareki==1)?"元":$wareki);
            }
        }
        return "";
    }
0
  • このエントリーをはてなブックマークに追加
filed under: PHP