1. 程式人生 > 程式設計 >php實現根據身份證獲取精準年齡

php實現根據身份證獲取精準年齡

前言

有時候,我們希望通過身份證來計算出年齡,那麼下面我寫的函式很適合。

實現

程式碼中已有詳細註釋。

function getAge($id){

# 1.從身份證中獲取出生日期
$id = $id;//身份證
$birth_Date = strtotime(substr($id,6,8));//擷取日期並轉為時間戳

# 2.格式化[出生日期]
$Year = date('Y',$birth_Date);//yyyy
$Month = date('m',$birth_Date);//mm
$Day = date('d',$birth_Date);//dd

# 3.格式化[當前日期]
$current_Y = date('Y');//yyyy
$current_M = date('m');//mm
$current_D = date('d');//dd

# 4.計算年齡()
$age = $current_Y - $Year;//今年減去生日年
if($Month > $current_M || $Month == $current_M && $Day > $current_D){//深層判斷(日)
 $age--;//如果出生月大於當前月或出生月等於當前月但出生日大於當前日則減一歲
}
# 返回
return $age;

}

使用

通過呼叫 getAge() 方法,傳入身份證號即可計算。

# 引數必須為 String 型
echo getAge('130322xxxxxxxxxx14');
// xx

小編再為大家分享一段程式碼:身份證獲取年齡資訊:

/*
* 根據身份證號碼獲取年齡
* inupt $code = 完整的身份證號
* return $age : 年齡
*/
function ageVerification($code){
 $age_time = strtotime(substr($code,8));
 if($age_time === false){
  return false;
 }
 list($y1,$m1,$d1) = explode("-",date("Y-m-d",$age_time)); 
 
 $now_time = strtotime("now");
 
 list($y2,$m2,$d2) = explode("-",$now_time));
 $age = $y2 - $y1;
 if((int)($m2.$d2) < (int)($m1.$d1)){
  $age -= 1;
 }
 return $age; 
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。