当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2022-02-14 12:49:15 浏览: 评论:0 

这篇文章主要为大家详细介绍了php实现根据身份证获取精准年龄,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

前言

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

实现

代码中已有详细注释。

  1. function getAge($id){ 
  2.  
  3. # 1.从身份证中获取出生日期 
  4. $id = $id;//身份证 
  5. $birth_Date = strtotime(substr($id, 6, 8));//截取日期并转为时间戳 
  6.  
  7. # 2.格式化[出生日期] 
  8. $Year = date('Y'$birth_Date);//yyyy 
  9. $Month = date('m'$birth_Date);//mm 
  10. $Day = date('d'$birth_Date);//dd 
  11.  
  12. # 3.格式化[当前日期] 
  13. $current_Y = date('Y');//yyyy 
  14. $current_M = date('m');//mm 
  15. $current_D = date('d');//dd 
  16.  
  17. # 4.计算年龄() 
  18. $age = $current_Y - $Year;//今年减去生日年 
  19. if($Month > $current_M || $Month == $current_M && $Day > $current_D){//深层判断(日) 
  20.  $age--;//如果出生月大于当前月或出生月等于当前月但出生日大于当前日则减一岁 
  21. # 返回 
  22. return $age
  23.  

使用

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

  1. # 参数必须为 String 型 
  2. echo getAge('130322xxxxxxxxxx14'); 
  3. // xx 

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

  1. /* 
  2. * 根据身份证号码获取年龄 
  3. * inupt $code = 完整的身份证号 
  4. * return $age : 年龄 
  5. */ 
  6. function ageVerification($code){ 
  7.  $age_time = strtotime(substr($code, 6, 8)); 
  8.  if($age_time === false){ 
  9.  return false; 
  10.  } 
  11.  list($y1,$m1,$d1) = explode("-",date("Y-m-d",$age_time));  
  12.    
  13.  $now_time = strtotime("now"); 
  14.    
  15.  list($y2,$m2,$d2) = explode("-",date("Y-m-d",$now_time)); 
  16.  $age = $y2 - $y1
  17.  if((int)($m2.$d2) < (int)($m1.$d1)){ 
  18.  $age -= 1; 
  19.  } 
  20.  return $age;  
  21. }

Tags: php身份证获取精准年龄

分享到: