这是另一种计算年龄的方法.它使用PHP格式.它只是减去年份,然后检查今年的生日是否过去了.这可以像使用标准PHP函数一样容易,但我决定像你问的那样使用Zend_Date.
更新的答案
Zend_Date::setOptions(array(
'format_type' => 'php'
));
$today = new Zend_Date();
$dateOfBirth = new Zend_Date('1979-04-10', 'Y-m-d');
$age = $today->toString('Y') - $dateOfBirth->toString('Y');
// Edit: Added julian date adjustments for leap years
$adjustJulian = strcmp($today->toString('L'), $dateOfBirth->toString('L'));
if ($dateOfBirth->toString('m') > 2) {
$dateOfBirth->addDay($adjustJulian);
}
if ($today->toString('z') < $dateOfBirth->toString('z')) {
$age--;
}
Run Code Online (Sandbox Code Playgroud)
感谢@ maciej-homziuk指出前一个答案的闰年限制.我已经更新了这个答案,为闰年的朱利安日添加了调整.