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 "";
}