你值得信赖的源码站!

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

本文给大家分享的是一则使用php实现的从身份证中提取出生日期的函数,非常的简单,有需要的小伙伴可以参考下。

用php从身份证中提取生日,包括15位和18位身份证。

  1. function getIDCardInfo($IDCard,$format=1){  
  2.  $result['error']=0;//0:未知错误,1:身份证格式错误,2:无错误  
  3.  $result['flag']='';//0标示成年,1标示未成年  
  4.  $result['tdate']='';//生日,格式如:2012-11-15  
  5.  if(!preg_match("/^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/",$IDCard)){  
  6.   $result['error']=1;  
  7.   return $result;  
  8.  }else{  
  9.   if(strlen($IDCard)==18) 
  10.   {  
  11.    $tyear=intval(substr($IDCard,6,4));  
  12.    $tmonth=intval(substr($IDCard,10,2));  
  13.    $tday=intval(substr($IDCard,12,2));  
  14.   } 
  15.   elseif(strlen($IDCard)==15) 
  16.   {  
  17.    $tyear=intval("19".substr($IDCard,6,2));  
  18.    $tmonth=intval(substr($IDCard,8,2));  
  19.    $tday=intval(substr($IDCard,10,2));  
  20.   } 
  21.      
  22.   if($tyear>date("Y")||$tyear<(date("Y")-100)) 
  23.   {  
  24.     $flag=0;  
  25.    } 
  26.    elseif($tmonth<0||$tmonth>12) 
  27.    {  
  28.     $flag=0;  
  29.    } 
  30.    elseif($tday<0||$tday>31) 
  31.    {  
  32.     $flag=0;  
  33.    }else 
  34.    {  
  35.     if($format
  36.     { 
  37.      $tdate=$tyear."-".$tmonth."-".$tday;  
  38.     } 
  39.     else 
  40.     { 
  41.      $tdate=$tmonth."-".$tday;  
  42.     } 
  43.        
  44.     if((time()-mktime(0,0,0,$tmonth,$tday,$tyear))>18*365*24*60*60) 
  45.     {  
  46.      $flag=0;  
  47.     } 
  48.     else 
  49.     {  
  50.      $flag=1;  
  51.     }  
  52.    }   
  53.  }  
  54.  $result['error']=2;//0:未知错误,1:身份证格式错误,2:无错误  
  55.  $result['isAdult']=$flag;//0标示成年,1标示未成年  
  56.  $result['birthday']=$tdate;//生日日期  
  57.  return $result;  
  58. }

赞(0) 本模板价: 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《使用php实现从身份证中提取生日》
文章链接:https://www.adminn.cn/667.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏