欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

php实现根据身份证获取精准年龄

程序员文章站 2022-05-25 22:54:53
前言有时候,我们希望通过身份证来计算出年龄,那么下面我写的函数很适合。实现代码中已有详细注释。function getage($id){# 1.从身份证中获取出生日期$id = $id;//身份证$b...

前言

有时候,我们希望通过身份证来计算出年龄,那么下面我写的函数很适合。

实现

代码中已有详细注释。

function getage($id){

# 1.从身份证中获取出生日期
$id = $id;//身份证
$birth_date = strtotime(substr($id, 6, 8));//截取日期并转为时间戳

# 2.格式化[出生日期]
$year = date('y', $birth_date);//yyyy
$month = date('m', $birth_date);//mm
$day = date('d', $birth_date);//dd

# 3.格式化[当前日期]
$current_y = date('y');//yyyy
$current_m = date('m');//mm
$current_d = date('d');//dd

# 4.计算年龄()
$age = $current_y - $year;//今年减去生日年
if($month > $current_m || $month == $current_m && $day > $current_d){//深层判断(日)
 $age--;//如果出生月大于当前月或出生月等于当前月但出生日大于当前日则减一岁
}
# 返回
return $age;

}

使用

通过调用 getage() 方法,传入身份证号即可计算。

# 参数必须为 string 型
echo getage('130322xxxxxxxxxx14');
// xx

小编再为大家分享一段代码:身份证获取年龄信息:

/*
* 根据身份证号码获取年龄
* inupt $code = 完整的身份证号
* return $age : 年龄
*/
function ageverification($code){
 $age_time = strtotime(substr($code, 6, 8));
 if($age_time === false){
 return false;
 }
 list($y1,$m1,$d1) = explode("-",date("y-m-d",$age_time)); 
 
 $now_time = strtotime("now");
 
 list($y2,$m2,$d2) = explode("-",date("y-m-d",$now_time));
 $age = $y2 - $y1;
 if((int)($m2.$d2) < (int)($m1.$d1)){
 $age -= 1;
 }
 return $age; 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。