dongyingtang3803 2017-10-22 04:45
浏览 39
已采纳

使用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);
  • 写回答

1条回答 默认 最新

  • dongyou8368 2017-10-22 05:21
    关注

    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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?