ฟังชั่น คำนวณอายุเป็น ปี เดือน วัน (ใช้ได้ทุกปี)
หน้าแรก 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"; ?> |
ขึ้นไปด้านบน
