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"))."
";; echo $this->getWareki2(strtotime("1926-12-25 00:00:00"))."
";; echo $this->getWareki2(strtotime("1912-7-30 00:00:00"))."
";; 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 ""; }