我想在我的页面上打印格式化的日期。我有一个对象日期,我使用$ this-> Time-> format()进行格式化。在12月27日之前一切正常。不幸的是,12月26日之后的所有日期,格式都会改变我的年份数。
这是我的调试($ date)
object(Cake\I18n\Time) {
'time' => '2015-12-30T00:00:00+0000',
'timezone' => 'UTC',
'fixedNowTime' => false
}
这是我的调试($ this-> Time->格式($ date,' YYYY'))
'2016'
我尝试使用i18nFormat,但我遇到了同样的问题。这是我的调试($ date-> i18nFormat(' YYYY'));
'2016'
感谢您的帮助
答案 0 :(得分:13)
i18n日期使用IntlDateFormatter
格式化,YYYY
使用ISO日期格式模式,其中2016
并不仅仅意味着全年,而是整周-numbering year ,将返回2015-12-30
,因为当天2016
跨越到明年,或更具体地说,因为那一周包括1月1日仍然是工作日(星期一到星期五),根据ISO周规则,它被视为yyyy
的第一周。
另请参阅 https://en.wikipedia.org/wiki/ISO_8601#Week_dates
您希望使用{{1}}代替,这将返回常规日历年。
答案 1 :(得分:2)
尝试将日期格式指定为var items = [];
var itemCount = results.data.length;
$.each(results.data, function(index) {
var item = results.data[index];
item.index = index;
geocoder.geocode({
'address': address
}, function(results, status) {
item.lat = results[0].geometry.location.lat();
item.lng = results[0].geometry.location.lng();
items.push(item);
console.log(items[0]); // --> prints object with all properties
if (items.length === itemCount) {
console.log(items); // --> prints 3 empty objects
}
});
}
。案件很重要。
'yyyy'