// 方法一:通过计算时间戳

function getAgeByID($id){

//过了这年的生日才算多了1周岁

if(empty($id)) return '';

//获得出生年月日的时间戳

$date=strtotime(substr($id,6,8));

//获得今日的时间戳

$today=strtotime('today');

//得到两个日期相差的大体年数

$diff=floor(($today-$date)/86400/365);

//strtotime加上这个年数后得到那日的时间戳后与今日的时间戳相比

$age=strtotime(substr($id,6,8).' +'.$diff.'years')>$today?($diff+1):$diff;

return $age;

}



// 方法二:通过截取年、月、日来进行比较计算,更简单

function getAgeByIdcard($idcard){

$year = substr($idcard, 6, 4);

$monthDay = substr($idcard, 10, 4);


$age = date('Y') - $year;

if ($monthDay > date('md')) {

$age--;

}

return $age;

}

 


x