public static function toJapaneseYear($year, $yearType = self::YEAR_KANJI, $numeralType = null)
{
if ($year < self::$mapEras[0]['year']) {
throw new Exception('The year ' . $year . ' is before any of the known Japanese eras. The first era started in ' . self::$mapEras[0]['year'] . '.');
}
$max = count(self::$mapEras);
$era = self::$mapEras[$max - 1];
for ($i = 1; $i < $max; $i++) {
$currentEra = self::$mapEras[$i];
$startYear = $currentEra['year'];
if ($startYear > $year) {
$era = self::$mapEras[$i - 1];
break;
}
}
$eraValue = $year - $era['year'] + 1;
if ($numeralType !== null) {
$eraValue = self::toJapaneseNumeral($eraValue, $numeralType);
}
switch ($yearType) {
case self::YEAR_KANJI:
$eraName = $era['kanji'];
$eraValue .= '年';
break;
case self::YEAR_ROMAJI:
$eraName = $era['romaji'] . ' ';
break;
case self::YEAR_KANA:
$eraName = $era['kana'];
$eraValue .= 'ねん';
break;
default:
throw new Exception('Unknown year type');
}
return $eraName . $eraValue;
}