• 技术文章 >php教程 >PHP源码

    身份证 中提取生日 - 开源中国社区

    PHP中文网PHP中文网2016-05-20 12:56:33原创781
    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; 
    }
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:一个低调有内涵的E-mail验证类! 下一篇:通过base64 上传文件
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• php解八皇后以及多皇后问题。• 用PHP实现小写金额转换大写金额【精确到分】• 将PHP数组转成XML• 收藏PHP常用自定义函数• php中把session保存到MySQL数据库中示例
    1/1

    PHP中文网