2017-10-22 115 views
0

我面临的一个问题,而使用PHP打印的确切年龄。这个年龄段的年龄正在打印,但是在几个月和几天时间里,它们往往会变成负值。精确计算年龄从MySQL数据库使用PHP

下面是代码的片断和完整的代码here

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

您可以发布您的输出和预期输出? – Ravi

回答

1

您的年龄计算方法是不正确的,BCZ从今天的每年出生年份分离是好的,但是当它来到月份和日期,将给予负值,直接分离不会为年龄计算工作。 使用以下代码。

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 

在这里你可以找到file

+0

感谢您的回复。实际上,我们聘请了我们学校的软件开发者,现在他没有回应,我需要在明天显示正确的数据时代。可你到底告诉我,我应该在哪里分配 $ row11 [“DOB”] 会,如果我得到确切的答案是你真好。 –

+0

根据你的要求我在你的文件编辑,只需更换[这](https://drive.google.com/file/d/0B8eh4-Yt9AgvYThYYmlvLWlLV1k/view?usp=sharing)文件到你的,不要忘了将其标记作为感谢的答案 –

+0

束交配:) –