CakePHP3 日付のフォーマットで平成表示


$t = new \Cake\I18n\Time('2017-12-25 19:13');
echo $t->i18nFormat('平成y年MM月dd日(E) ah時m分', 'Asia/Tokyo', 'ja@calendar=japanese');
// 平成29年12月25日(月) 午後7時13分

次の元号どうすんだろ

追記

平成

$t = new \Cake\I18n\Time('1989-1-8');
echo $t->i18nFormat('平成y年MM月dd日(E)', 'Asia/Tokyo', 'ja@calendar=japanese');
// 平成1年01月08日(日)

昭和

$t = new \Cake\I18n\Time('1989-1-7');
echo $t->i18nFormat('昭和y年MM月dd日(E)', 'Asia/Tokyo', 'ja@calendar=japanese');
// 昭和64年01月07日(土)

$t = new \Cake\I18n\Time('1926-12-25');
echo $t->i18nFormat('昭和y年MM月dd日(E)', 'Asia/Tokyo', 'ja@calendar=japanese');
// 昭和1年12月25日(土)

大正

$t = new \Cake\I18n\Time('1926-12-24');
echo $t->i18nFormat('大正y年MM月dd日(E)', 'Asia/Tokyo', 'ja@calendar=japanese');
// 大正15年12月24日(金)

$t = new \Cake\I18n\Time('1912-7-30');
echo  $t->i18nFormat('大正y年MM月dd日(E)', 'Asia/Tokyo', 'ja@calendar=japanese');
// 大正1年07月30日(火)

明治

1868/9/7 以前は不正確になる...

$t = new \Cake\I18n\Time('1912-7-29');
echo $t->i18nFormat('明治y年MM月dd日(E)', 'Asia/Tokyo', 'ja@calendar=japanese');
// 明治45年07月29日(月)

$t = new \Cake\I18n\Time('1868-9-8');
echo $t->i18nFormat('明治y年MM月dd日(E)', 'Asia/Tokyo', 'ja@calendar=japanese');
// 明治1年09月08日(火)

$t = new \Cake\I18n\Time('1868-9-7');
echo $t->i18nFormat('明治y年MM月dd日(E)', 'Asia/Tokyo', 'ja@calendar=japanese');
// 明治4年09月07日(月)

参考

環境

  • CakePHP: 3.5.7
  • PHP: 7.1.10 by php-osx.liip.ch
  • intl: 1.1.0
  • ICU version: 58.1
  • ICU Data version: 58.1