我在使用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 :(得分: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