为什么格式化日期会返回错误的年份?

Tar*_*n34 2 cakephp date-formatting cakephp-3.0

我想在我的页面上打印格式化的日期.我有一个对象日期,我使用$ this-> Time-> format()进行格式化.在12月27日之前一切正常.不幸的是,12月26日之后的所有日期,格式都会改变我的年份数.

这是我的调试($ date)

object(Cake\I18n\Time) {

'time' => '2015-12-30T00:00:00+0000',
'timezone' => 'UTC',
'fixedNowTime' => false

}
Run Code Online (Sandbox Code Playgroud)

这是我的调试($ this-> Time-> format($ date,'YYYY'))

'2016'
Run Code Online (Sandbox Code Playgroud)

我试过使用i18nFormat,但我有同样的问题.这是我的调试($ date-> i18nFormat('YYYY'));

'2016'
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

ndm*_*ndm 13

i18n日期的格式使用IntlDateFormatter,使用ISO日期格式模式,其中YYYY不仅仅意味着全年,而是全周编号年份,2016因为当天的一周2015-12-30跨越到下一年,或更具体地说,因为那一周包括1月1日仍然是工作日(星期一到星期五),因此它被视为2016根据ISO周规则的第一周.

另见https://en.wikipedia.org/wiki/ISO_8601#Week_dates

您想要使用yyyy,这将返回常规日历年.