php 提取身份證號碼中的生日日期以及確定是否成年的一個函數。可以同時確定15位和18位的身份證,經本人親測,非常好用,分享函數代碼如下:
- <?php
- //用php從身份證中提取生日,包括位和位身份證
- function getIDCardInfo($IDCard){
- $result['error']=;//:未知錯誤,:身份證格式錯誤,:無錯誤
- $result['flag']='';//標示成年,標示未成年
- $result['tdate']='';//生日,格式如:--
- if(!eregi("^[-]([-a-zA-Z]{}|[-a-zA-Z]{})$",$IDCard)){
- $result['error']=;
- return $result;
- }else{
- if(strlen($IDCard)==){
- $tyear=intval(substr($IDCard,,));
- $tmonth=intval(substr($IDCard,,));
- $tday=intval(substr($IDCard,,));
- if($tyear>date("Y")||$tyear<(date("Y")-)){
- $flag=;
- }elseif($tmonth<||$tmonth>){
- $flag=;
- }elseif($tday<||$tday>){
- $flag=;
- }else{
- $tdate=$tyear."-".$tmonth."-".$tday." ::";
- if((time()-mktime(,,,$tmonth,$tday,$tyear))>****){
- $flag=;
- }else{
- $flag=;
- }
- }
- }elseif(strlen($IDCard)==){
- $tyear=intval("".substr($IDCard,,));
- $tmonth=intval(substr($IDCard,,));
- $tday=intval(substr($IDCard,,));
- if($tyear>date("Y")||$tyear<(date("Y")-)){
- $flag=;
- }elseif($tmonth<||$tmonth>){
- $flag=;
- }elseif($tday<||$tday>){
- $flag=;
- }else{
- $tdate=$tyear."-".$tmonth."-".$tday." ::";
- if((time()-mktime(,,,$tmonth,$tday,$tyear))>****){
- $flag=;
- }else{
- $flag=;
- }
- }
- }
- }
- $result['error']=;//:未知錯誤,:身份證格式錯誤,:無錯誤
- $result['isAdult']=$flag;//標示成年,標示未成年
- $result['birthday']=$tdate;//生日日期
- return $result;
- }
新聞熱點
疑難解答