php計算年齡的雜談

近日作項目時臨時須要計算年齡,之前都是用戶手輸,此次是經過身份證號來計算php

實話說之前還真沒用日期計算過生日這種東西,挺小的需求,本身想了下好像兩三行代碼無法解決,也就網上搜了下直接用了code

過後本身也仔細地想了下該怎麼算:io

首先年齡確定是個整數,不能出現一半一半的數function

年齡就是不能用天數算,由於一年的天數並不固定,考慮閏年算是扯遠了,並且不能用日期差的時間戳直接算class

根據本身映像中直觀地講,年齡不光考慮年,還要考慮日期,日子沒到是不能算一歲的date

而後我就想到其實能夠設定一個基準日期,這個日期的年部分是當前年,日期就用生日,好比"2000-03-03"的基準日期就是"2019-03-03",能夠用這個日期與當前日期進行比較,比如今大的畫年齡就直接是當前年與生日年的差,比如今小的話差減1就是了im

這樣的話稍微梳理下思路,代碼天然就寫出來了:時間戳

<?php
function GetAge($Date){
$CheckTimeStamp=strtotime($Date);
$NowDate=date('Y-m-d');
$NowYear=substr($NowDate,0,4);
$BaseYear=$NowYear-date('Y',$CheckTimeStamp);
return $NowDate>=$NowYear.date('-m-d',$CheckTimeStamp)?$BaseYear:$BaseYear-1;
}
相關文章
相關標籤/搜索