php根据出生年月日计算当前年龄,包含X年x个月x天

代码笔记   2014-09-03 12:12:56

这段代码能够显示当前生日,并且是X年X个月X天的形式显示,.更精确.

function diffDate($date1,$date2){ 
$datestart= date('Y-m-d',strtotime($date1));
    if(strtotime($datestart)>strtotime($date2)){ 
        $tmp=$date2; 
        $date2=$datestart; 
        $datestart=$tmp; 
    } 
    list($Y1,$m1,$d1)=explode('-',$datestart); 
    list($Y2,$m2,$d2)=explode('-',$date2); 
    $Y=$Y2-$Y1; 
    $m=$m2-$m1; 
    $d=$d2-$d1; 
    if($d<0){ 
        $d+=(int)date('t',strtotime("-1 month $date2")); 
        $m--; 
    } 
    if($m<0){ 
        $m+=12; 
        $y--; 
    } 
      if($Y == 0){
    return $m.'个月'.$d.'天';
    }elseif($Y == 0 && $m == 0){
    return $d.'天';
    }else{
    return $Y.'年'.$m.'个月'.$d.'天';
    }

 

定义好function以后再调用下就好了

echo diffDate($catdata,date('Y-m-d',time()));
    
注:这里的catdata是datetime函数的形式存放的哈