7

I'm using Zend_Date to set and get the year, but it is not being set as the correct year. I set the year as 2010, and it returns the year as 2009. What am I doing wrong? Is there a bug in Zend_Date?

$date = new Zend_Date('2010-01-03', 'YYYY-MM-dd');
echo $date->toString('MMMM d, YYYY');
//outputs January 3, 2009

The year must be being set correctly because getting the year part of the date works:

echo $date->get(Zend_Date::YEAR); //2010

Solution:

Well I got it to work...You have you use lowercase: yyyy

echo $date->toString('MMMM d, yyyy');
  • YYYY stands for the ISO Year. 2010-01-03 is week 53, day 7 of the ISO year 2009
  • yyyy stands for the actual calendar year.
Andrew
  • 227,796
  • 193
  • 515
  • 708

1 Answers1

12

I've ran into this problem as well.

In the Zend_Date class 'YYYY' means to a 4 digit representation of the 'ISO year' where as 'yyyy' means a 4 digit representation of the 'year'.

smack0007
  • 11,016
  • 7
  • 41
  • 48
  • Yeah...I don't really know what ISO year means, so I assumed they were pretty much the same. – Andrew Jan 02 '10 at 19:24
  • I'm not 100% sure either so I'll just present a wikipeida page: http://en.wikipedia.org/wiki/ISO_week_date – smack0007 Jan 02 '10 at 20:11