时时商务社区

标题: 使用php实现从身份证中提取生日 [打印本页]

作者: 网络通达    时间: 2018-2-14 05:36

            用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")||$tyear12)
   {
    $flag=0;
   }
   elseif($tday31)
   {
    $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;
}
            
            
您可能感兴趣的文章:
  • PHP 身份证号验证函数
  • php不用正则验证真假身份证
  • PHP用身份证号获取星座和生肖的方法
  • php根据身份证号码计算年龄的实例代码
  • PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
  • php身份证号码检查类实例
  • php提取身份证号码中的生日日期以及验证是否为成年人的函数
  • 使用php从身份证号中获取一系列线索(星座、生肖、生日等)
  • php验证身份证号码正确性的函数
  • PHP身份证校验码计算方法
  • php从身份证获取性别和出生年月
            




    欢迎光临 时时商务社区 (http://bbs.4435.cn/) Powered by Discuz! X3.2