Кажется, есть две проблемы.
- Система эпохи Японии не переключается по годам, но по дате в году
平 成 (Хейсей) заканчивается в2019-04-30, 令 和 (Reiwa) началось в 2019-05-01, поэтому указанная вами годовая таблица неполна, если вам нужно преобразовать конкретную дату в год перехода, например 2019.
Например, январь 成 成 31 и декабрь 和 are 1 относятся к 2019 году нашей эры. Поэтому, когда вы конвертируете только часть года, они будут показывать один и тот же результат.
PHP не всегда имеет обновленную таблицу внутри
На моем локальном компьютере, "$ formatter-> parse ('令 和 元年 8 月');"вернул мне 1970-01, время эпохи Unix, вероятно, исходит из нулевого значения. Это происходит потому, что я использую PHP, но еще не знаю, что японская эра изменилась на 令 和.
IntlDateFormatter находится в расширении pecl php_intl, которое вызывает библиотеку ICU. Библиотека ICU поддерживает новое имя эры 令 和 в своей версии 64.2 .
Вы можете проверить свой phpinfo () с помощью «версии ICU», и если она меньше 64.2, она не будетпреобразуйте 和 和 правильно.
$ php --info | grep "ICU version"
ICU version => 61.1
Если вы не можете найти 64.2+ на вашем последнем доступном PHP, вам, возможно, придется самостоятельно скомпилировать расширение int с более поздней библиотекой ICU.