ฟังชั่น คำนวณอายุเป็น ปี เดือน วัน (ใช้ได้ทุกปี)


หน้าแรก PHP MySQL เกร็ดความรู้ ฟังชั่น คำนวณอายุเป็น ปี เดือน วัน (ใช้ได้ทุกปี)
โค้ดนี้เขียนเองโดยคำนวณถึง ปีอธิกสุรทิน (leap year) คือปีที่มี กุมพาพันธ์ 29 วันด้วยครับ


  Code
<?
function CalAge($pbday)//คำนวณอายุเป็น ปี เดือน วัน | การนำไปใช้งาน echo CalAge("16/01/1980");
{

$todayY = date("Y");
$todayM = date("m");
$todayD = date("d");
$bdate=explode("/",$pbday);
$bY=$bdate[2];
$bM=$bdate[1];
$bD=$bdate[0];
$LeapYear=date("L"); // 1 = leap year Feb has 29 day

$d31 = array('01', '03', '05', '07', '08', '10', '12');
$d30 = array('04', '06', '09', '11');
$d28 = array('02');

$todayM2=$bM;

if(array_search($todayM2, $d31)==TRUE){ $subD=31; }
else if(array_search($todayM2, $d30)==TRUE){ $subD=30; }
else if(array_search($todayM2, $d28)==TRUE){ if($LeapYear==1) { $subD=29; } else { $subD=28; } }

if(($todayY==$bY)&&($todayM==$bM)&&($todayD==$bD)) { $aY2=0; $aM2=0; $aD2=0; }
else if(($todayY==$bY)&&($todayM==$bM)&&($todayD>$bD)) { $aY2=0; $aM2=0; $aD2=$todayD-$bD; }
//else if(($todayY==$bY)&&($todayM==$bM)&&($todayD<$bD)) { $aY2=0; $aM2=12-($todayM-$bM); $aD2=$subD-($bD-$todayD); }

else if(($todayY==$bY)&&($todayM>$bM)&&($todayD==$bD)) { $aY2=0; $aM2=$todayM-$bM; $aD2=0; }
else if(($todayY==$bY)&&($todayM>$bM)&&($todayD>$bD)) { $aY2=0; $aM2=$todayM-$bM; $aD2=$todayD-$bD; }
else if(($todayY==$bY)&&($todayM>$bM)&&($todayD<$bD)) { $aY2=0; $aM2=12-($todayM-$bM); $aD2=$subD-($bD-$todayD); }


else if(($todayY>$bY)&&($todayM>$bM)&&($todayD==$bD)) { $aY2=$todayY-$bY; $aM2=$todayM-$bM; $aD2=0; }
else if(($todayY>$bY)&&($todayM>$bM)&&($todayD>$bD)) { $aY2=$todayY-$bY; $aM2=$todayM-$bM; $aD2=$todayD-$bD; }
else if(($todayY>$bY)&&($todayM>$bM)&&($todayD<$bD)) { $aY2=$todayY-$bY; $aM2=$todayM-$bM-1; $aD2=$subD-($bD-$todayD); }

else if(($todayY>$bY)&&($todayM<$bM)&&($todayD==$bD)) { $aY2=$todayY-$bY-1; $aM2=$bM-$todayM; $aD2=0; }
else if(($todayY>$bY)&&($todayM<$bM)&&($todayD<$bD)) { $aY2=$todayY-$bY-1; $aM2=12-($bM-$todayM)-1; $aD2=$bD-$todayD; }
else if(($todayY>$bY)&&($todayM<$bM)&&($todayD>$bD)) { $aY2=$todayY-$bY-1; $aM2=12-($bM-$todayM); $aD2=$todayD-$bD; }

else if(($todayY>$bY)&&($todayM==$bM)&&($todayD==$bD)) { $aY2=$todayY-$bY; $aM2=0; $aD2=0; }
else if(($todayY>$bY)&&($todayM==$bM)&&($todayD>$bD)) { $aY2=$todayY-$bY; $aM2=0; $aD2=$todayD-$bD; }
else if(($todayY>$bY)&&($todayM==$bM)&&($todayD<$bD)) { $aY2=$todayY-$bY-1; $aM2=11; $aD2=$subD-($bD-$todayD); }

return array($aY2,$aM2,$aD2);
}

list($aY1,$aM1,$aD1)=CalAge($birth_day);

echo "$aY1,$aM1,$aD1";

?>



ขึ้นไปด้านบน