根据身份证号获取年年龄

Posted wangfenphph2

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据身份证号获取年年龄相关的知识,希望对你有一定的参考价值。

function  toAge($idCard){
	if(empty($idCard)) return ‘‘;
	//获取当前年份;
	$now_year   = substr(date(‘Y-m-d‘),0,4);

	//获取当前年份月份;
    $now_month  = substr(date(‘m‘),0,1)==‘0‘  ? substr(date(‘m‘),-1) : date(‘m‘);

    //获取当前日期;
    $now_day    = substr(date(‘d‘),0,1)==‘0‘  ? substr(date(‘d‘),-1) : date(‘d‘);

  if(strlen($idCard)==18){ //18位身份证号;
      //获取身份证号对应的年,月份,日期;
     $card_year  = substr($idCard,6,4);

     //获取身份证号对应月份
     $card_month = substr($idCard,10,2);
     $card_month = substr($card_month,0,1)==‘0‘ ? substr($card_month,-1): $card_month;
    
     //获取身份证号对应日期;
     $card_day   = substr($idCard,12,2);
     $card_day   = substr($card_day,0,1)==‘0‘ ? substr($card_day,-1): $card_day;
     }else{  //15位身份证号;
        //获取身份证号对应的年,月份,日期;
     $card_year  = ‘19‘.substr($idCard,6,2);

     //获取身份证号对应月份
     $card_month = substr($idCard,8,2);
     $card_month = substr($card_month,0,1)==‘0‘ ? substr($card_month,-1): $card_month;
    
     //获取身份证号对应日期;
     $card_day   = substr($idCard,10,2);
     $card_day   = substr($card_day,0,1)==‘0‘ ? substr($card_day,-1): $card_day;
    }
    //获取当前年份和身份证年份之差;
    $age        = $now_year - $card_year;

    $realAge = 0;

    if($now_month == $card_month){
    	
        //比较日期;
        if($now_day >= $card_day){
           $realAge =  $age;
        }else{
           $realAge =  $age -1;	
        }
    }elseif($now_month > $card_month){
    	$realAge    =  $age;
    }else{
        $realAge    =  $age -1 ;
    }
    return  $realAge;
} 

  

以上是关于根据身份证号获取年年龄的主要内容,如果未能解决你的问题,请参考以下文章

java根据身份证号和获取用户年龄和性别的工具类

JS根据身份证号得出年龄、性别、生日、籍贯问题,来个高手

表格中如何根据身份证号提取前6位的行政代码数字

sql中根据身份证号来计算年龄

pandas根据身份证计算年龄

excel怎么用身份证号算员工精确到天数的年龄