加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

LINUX教学:使用php实现从身份证中提取生日

发布时间:2020-12-13 17:50:30 所属栏目:Linux 来源:网络整理
导读:《LINUX教学:使用php实现从身份证中提取生日》要点: 本文介绍了LINUX教学:使用php实现从身份证中提取生日,希望对您有用。如果有疑问,可以联系我们。 用php从身份证中提取生日,包含15位和18位身份证 function getIDCardInfo($IDCard,$format=1){ $result['

《LINUX教学:使用php实现从身份证中提取生日》要点:
本文介绍了LINUX教学:使用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,2)); 
   $tmonth=intval(substr($IDCard,8,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,$tmonth,$tday,$tyear))>18*365*24*60*60)
    { 
     $flag=0; 
    }
    else
    { 
     $flag=1; 
    } 
   }  
 } 
 $result['error']=2;//0:未知差错,2:无差错 
 $result['isAdult']=$flag;//0标示成年,1标示未成年 
 $result['birthday']=$tdate;//生日日期 
 return $result; 
}

(编辑:李大同)

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

    推荐文章
      热点阅读