使用PHP从Mysql数据库计算精确年龄

I am facing a problem while printing exact age using php. The years of the age are printing exactly but when it comes to months and days they often goes to negative values.

Here is the snippet of the code and full code is here.

$ag = date('Y') - substr($row11['dob'],6);
        $mn = date('m') - substr($row11['dob'],3,2);
        $dy = date('d') - substr($row11['dob'],0,2);

Your age calculation method is not Right, bcz by separation from today's year to birth year is fine but when it come to month and date it will gives negative value, direct separation will not work for age calculation. Use following code.

    function ageCalculator($dob){
    if(!empty($dob)){
        $birthdate = new DateTime($dob);
        $today   = new DateTime('today');
        $ag = $birthdate->diff($today)->y;
        $mn = $birthdate->diff($today)->m;
        $dy = $birthdate->diff($today)->d;
        return "$ag Years $mn Months $dy Days";
    }else{
        return 0;
    }
}

$row11 = array('dob'=>'02-01-1995');
echo ageCalculator($row11['dob']);

//OUTPUT

22 Years 9 Months 20 Days

Here you can find the file