首頁 >後端開發 >php教程 >php取得身分證中的生日及驗證是否為成年的函數

php取得身分證中的生日及驗證是否為成年的函數

墨辰丷
墨辰丷原創
2018-06-07 10:36:392187瀏覽

這篇文章主要介紹php取得身分證中的生日及驗證是否成年的函數,有興趣的朋友參考下,希望對大家有幫助。

php 提取身分證號碼中的生日日期以及確定是否成年的一個函數。可以同時確定15位和18位的身份證,經過本人親測,非常好用,分享函數代碼如下:

<?php
//用php从身份证中提取生日,包括位和位身份证
function getIDCardInfo($IDCard){
  $result[&#39;error&#39;]=;//:未知错误,:身份证格式错误,:无错误
  $result[&#39;flag&#39;]=&#39;&#39;;//标示成年,标示未成年
  $result[&#39;tdate&#39;]=&#39;&#39;;//生日,格式如:--
  if(!eregi("^[-]([-a-zA-Z]{}|[-a-zA-Z]{})$",$IDCard)){
    $result[&#39;error&#39;]=;
    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[&#39;error&#39;]=;//:未知错误,:身份证格式错误,:无错误
  $result[&#39;isAdult&#39;]=$flag;//标示成年,标示未成年
  $result[&#39;birthday&#39;]=$tdate;//生日日期
  return $result;
}

用法如下:

 代碼如下:

getIDCardInfo(&#39;身份证号码&#39;);

總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。

相關推薦:

mysql 常用的三類函數

PHP如何取得數組中指定的一列(案例)

PHP如何實現根據手機號碼判斷運營商(實例)

以上是php取得身分證中的生日及驗證是否為成年的函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn