hotta@sandbox:~$ cat to_wareki.php
<?php
// 西暦から和暦への変換
//
function to_wareki(Datetime $western) {
$date = (int)$western->format('Ymd');
if ($date >= 19890108) { //平成元年(1989年1月8日以降)
$gengo = "h";
$delta = new DateInterval('P1988Y');
} else if ($date >= 19261225) { //昭和元年(1926年12月25日以降)
$gengo = "s";
$delta = new DateInterval('P1925Y');
} else if ($date >= 19120730) { //大正元年(1912年7月30日以降)
$gengo = "t";
$delta = new DateInterval('P1911Y');
} else if ($date >= 18680125) { //明治元年(1868年1月25日以降)
$gengo = "m";
$delta = new DateInterval('P1867Y');
}
$japanese = $western->sub($delta);
return $gengo . '.' . $japanese->format('y/m/d');
}
$test = new DateTime('1868/09/01');
printf("西暦=%s, 和暦=%s\n", $test->format('Y/m/d'), to_wareki($test));
hotta@sandbox:~$ php to_wareki.php
西暦=1868/09/01, 和暦=m.01/09/01