当前位置:

PHP根据生日计算年龄两种方法(周岁)

温馨提示:本文共1429个字,读完预计4分钟。

1、计算年龄
functionhowOld($birth) {
        list($birthYear, $birthMonth, $birthDay) = explode('-', date('Y-m-d', $birth));
        list($currentYear, $currentMonth, $currentDay) = explode('-', date('Y-m-d'));
        $age = $currentYear – $birthYear – 1;
        if($currentMonth > $birthMonth || $currentMonth == $birthMonth && $currentDay >= $birthDay)
            $age++;
        return$age;
    }

2、计算年龄(年月日)

    function datediffage($before, $after) {
     if ($before>$after) {
      $b = getdate($after);
      $a = getdate($before);
     }
     else {
      $b = getdate($before);
      $a = getdate($after);
     }
     $n = array(1=>31,2=>28,3=>31,4=>30,5=>31,6=>30,7=>31,8=>31,9=>30,10=>31,11=>30,12=>31);
     $y=$m=$d=0;
     if ($a[‘mday’]>=$b[‘mday’]) { //天相减为正
      if ($a[‘mon’]>=$b[‘mon’]) {//月相减为正
       $y=$a[‘year’]-$b[‘year’];$m=$a[‘mon’]-$b[‘mon’];
      }
      else { //月相减为负,借年
       $y=$a[‘year’]-$b[‘year’]-1;$m=$a[‘mon’]-$b[‘mon’]+12;
      }
      $d=$a[‘mday’]-$b[‘mday’];
     }
     else {  //天相减为负,借月
      if ($a[‘mon’]==1) { //1月,借年
       $y=$a[‘year’]-$b[‘year’]-1;$m=$a[‘mon’]-$b[‘mon’]+12;$d=$a[‘mday’]-$b[‘mday’]+$n[12];
      }
      else {
       if ($a[‘mon’]==3) { //3月,判断闰年取得2月天数
        $d=$a[‘mday’]-$b[‘mday’]+($a[‘year’]%4==0?29:28);
       }
       else {
        $d=$a[‘mday’]-$b[‘mday’]+$n[$a[‘mon’]-1];
       }
       if ($a[‘mon’]>=$b[‘mon’]+1) { //借月后,月相减为正
        $y=$a[‘year’]-$b[‘year’];$m=$a[‘mon’]-$b[‘mon’]-1;
       }
       else { //借月后,月相减为负,借年
        $y=$a[‘year’]-$b[‘year’]-1;$m=$a[‘mon’]-$b[‘mon’]+12-1;
       }
      }
     }
     return (string)$y;
    }

本文链接:,转发请注明来源!
评论已关闭。