当前位置: 岑溪网站开发工作室 > 代码记录库 > PHP代码 >

php分析身份证上的年月日,生日

发表时间:2016-09-20 12:57 来源:未知 分类:PHP代码 作者:岑溪网站开发 点击:

php分析身份证上的年月日,生日

今天需要做一个客户生日提醒程序,所以写了一个php分析身份证上的年月日,生日的函数。

php 提取身份证号码中的生日日期以及确定是否成年的一个函数。

可以同时确定15位和18位的身份证,经本人亲测,非常好用,代码如下:

function getIDCardInfo($IDCard){
$result['error']=0;//0:未知错误,1:身份证格式错误,2:无错误
$result['flag']='';//0标示成年,1标示未成年
$result['tdate']='';//生日,格式如:2012-11-15
if(!preg_match("/^[1-9]([0-9a-zA-Z]{17}|[0-9a-zA-Z]{14})$/",$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));
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{
$tdate=$tyear."-".$tmonth."-".$tday." 00:00:00";
if((time()-mktime(0,0,0,$tmonth,$tday,$tyear))>18*365*24*60*60){
$flag=0;
}else{
$flag=1;
}
}
}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{
$tdate=$tyear."-".$tmonth."-".$tday." 00:00:00";
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代码年推荐榜