龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php 根据出生日期计算年龄(考虑到闰年的情况)

时间:2014-07-22 02:08来源:网络整理 作者:网络 点击:
分享到:
根据出生日期计算年龄(考虑到闰年的情况) 主要考虑到闰年的情况,如果有人出生在2.29,那么不是闰年则过了2.28将算上一岁[代码片段(44行)]

主要考虑到闰年的情况,如果有人出生在2.29,那么不是闰年则过了2.28将算上一岁

function age($birth) {
    $age = array();
    //$now = date('Ymd');
    $now = "20110228";
    //分解当前日期为年月日
    $nowyear = (int) ($now / 10000);
    $nowmonth = (int) (($now % 10000) / 100);
    $nowday = $now % 100;

    //分解出生日期为年月日
    $birthyear = (int) ($birth / 10000);
    $birthmonth = (int) (($birth % 10000) / 100);
    $birthday = $birth % 100;

    $year  = $nowyear - $birthyear;
    if ($birthmonth>$nowmonth){
        $year--;
    }else if($birthmonth==$nowmonth){
        if($birthday==29&&$birthmonth=2){
/*          if($nowyear>3200||($nowyear%3200==0&&$nowyear%172800==0)){
                if($birthday>$nowday){
                    $year--;
                }
            }else if($nowyear==3200){
                if (($birthday>$nowday)&&$nowday!=28){
                    $year--;
                }
            }else */
            if ($nowyear%400==0||(($nowyear%4==0)&&($nowyear%100!=0))){
                if($birthday>$nowday){
                    $year--;
                }
            }
        }
    }

    return $year;

}
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接