加入收藏 | 设为首页 | 会员中心 | 我要投稿 钦州站长网 (https://www.0777zz.cn/)- 智能办公、数据计算、云存储网关、负载均衡、设备管理!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

使用php实现从身份证中提取生日

发布时间:2022-08-03 10:21:19 所属栏目:PHP教程 来源:互联网
导读:本文给大家分享的是一则使用php实现的从身份证中提取出生日期的函数,非常的简单,有需要的小伙伴可以参考下。 用php从身份证中提取生日,包括15位和18位身份证。 function getIDCardInfo($IDCard,$format=1){ $result[error]=0;//0:未知错误,1:身份证格式
  本文给大家分享的是一则使用php实现的从身份证中提取出生日期的函数,非常的简单,有需要的小伙伴可以参考下。
 
  用php从身份证中提取生日,包括15位和18位身份证。
 
  function getIDCardInfo($IDCard,$format=1){  
   $result['error']=0;//0:未知错误,1:身份证格式错误,2:无错误  
   $result['flag']='';//0标示成年,1标示未成年  
   $result['tdate']='';//生日,格式如:2012-11-15  
   if(!preg_match("/^(d{15}$|^d{18}$|^d{17}(d|X|x))$/",$IDCard)){  
    $result['error']=1;  
    return $result;  
   }else{  
    if(strlen($IDCard)==18)
    {  
     $tyear=intval(substr($IDCard,6,4));  
     $tmonth=intval(substr($IDCard,10,2));  
     $tday=intval(substr($IDCard,12,2));  
    }
    elseif(strlen($IDCard)==15)
    {  
     $tyear=intval("19".substr($IDCard,6,2));  
     $tmonth=intval(substr($IDCard,8,2));  
     $tday=intval(substr($IDCard,10,2));  
    }
       
    if($tyear>date("Y")||$tyear<(date("Y")-100))
    {  
      $flag=0;  
     }
     elseif($tmonth<0||$tmonth>12)
     {  
      $flag=0;  
     }
     elseif($tday<0||$tday>31)
     {  
      $flag=0;  
     }else
     {  
      if($format)
      {
       $tdate=$tyear."-".$tmonth."-".$tday;  
      }
      else
      {
       $tdate=$tmonth."-".$tday;  
      }
         
      if((time()-mktime(0,0,0,$tmonth,$tday,$tyear))>18*365*24*60*60)
      {  
       $flag=0;  
      }
      else
      {  
       $flag=1;  
      }  
     }   
   }  
   $result['error']=2;//0:未知错误,1:身份证格式错误,2:无错误  
   $result['isAdult']=$flag;//0标示成年,1标示未成年  
   $result['birthday']=$tdate;//生日日期  
   return $result;  
  }

(编辑:钦州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读