如何使用Zend_Date计算从日期开始的年龄

Egi*_*ino 1 php zend-framework date

如何使用Zend_Date对象计算出生日期的年龄?

bra*_*ano 7

这是另一种计算年龄的方法.它使用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指出前一个答案的闰年限制.我已经更新了这个答案,为闰年的朱利安日添加了调整.