近日作項目時臨時須要計算年齡,之前都是用戶手輸,此次是經過身份證號來計算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; }