Robert M. Smith
Robert M. Smith

Reputation: 13

Calculate Exact Age From Mysql Database Using PHP

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);

Upvotes: 0

Views: 849

Answers (1)

Rasa Mohamed
Rasa Mohamed

Reputation: 892

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

Upvotes: 1

Related Questions