PHP根据身份证号计算年龄和年龄分段
/**
* @param $id 身份证号
* @return string
* 根据身份证号判断年龄和年龄分段
*/
public 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;
$age = (int)$age;
$data['age'] = $age;
if ($age <= 6) {//儿童
$data['age_type'] = 1;
return $data;
} elseif ($age > 6 && $age <= 60) {//成年人
$data['age_type'] = 2;
return $data;
} elseif ($age > 60) {//老年人
$data['age_type'] = 3;
return $data;
}
}