milesap wrote:
Hello,
I'm fairly new to Zend Framework, so forgive me if this is a really easy
question. I have been looking everywhere for a solution. I am trying to get
the difference between the current date and a persons birthday to see how
old they are.
$date = new Zend_Date();
$date->sub('April 3, 1980');
print $date->toString('Y');
The following prints 28, however the correct age would be 29, as the persons
birthday was a few days ago. Does it not take the month and day into account
when it subs the date? Or a better question would be what am I doing wrong?
I have set my default timezone correctly.
I'm no Zend_Date expert, but I've been looking at this for a bit mostly
because I am interested in how Zend_Date works. The behaviour of ->sub
seems a bit erratic. I would expect the following 2 code fragments to
output the same thing.
$date = new Zend_Date('April 7, 2009');
$date->sub('April 3, 1980');
print $date->toString() . "\n";
$date = new Zend_Date('April 7, 2009');
$date->sub(new Zend_Date('April 3, 1980'));
print $date->toString() . "\n";
but they don't. The output is
Dec 6, 0028 3:00:00 PM
Jan 4, 1999 3:00:00 PM
I also experiment with 'y' vs 'Y' as suggested by Thomas and still got
28. Gotta go do some other stuff, may take a look again later.
Daryl