asdrtu 发表于 2018-12-20 11:56:45

PHP计算年龄的函数

  今天工作要计算用户的生日到周,找到一个函数。
  


[*]/**
[*]   *计算生日到现在的时间
[*]   * @param int $birthday    宝贝生日
[*]   */
[*]    function age($birthday) {
[*]      $now = date('Ymd');
[*]      //分解当前日期为年月日
[*]      $y = (int) ($now / 10000);
[*]      $m = (int) (($now % 10000) / 100);
[*]      $d = $now % 100;
[*]      //分解生日为年月日
[*]      $yy = (int) ($birthday / 10000);
[*]      $ym = (int) (($birthday % 10000) / 100);
[*]      $yd = $birthday % 100;
[*]      //特殊日期计算
[*]      if ($years % 4 == 0 || ($years % 100 == 0 && $years % 400 == 0)) {
[*]            $special = 29;
[*]      } else {
[*]            $special = 28;
[*]      }
[*]      //各月的上个月的天数
[*]      switch ($m) {
[*]            case 2:$add = 31;
[*]            case 3:$add = 31;
[*]            case 6:$add = 31;
[*]            case 8:$add = 31;
[*]            case 9:$add = 31;
[*]            case 11:$add = 31;
[*]            case 1:$add = 31;
[*]            case 5:$add = 30;
[*]            case 7:$add = 30;
[*]            case 10:$add = 30;
[*]            case 12:$add = 30;
[*]            case 3:$add = $special;
[*]      }
[*]      if ($d < $yd) {
[*]            $d+=$add;
[*]            $m-=1;
[*]      }
[*]      if ($m < $ym) {
[*]            $m+=12;
[*]            $y-=1;
[*]      }
[*]      //运算年龄
[*]      if ($now >= $birthday) {
[*]            $age['day'] = $d - $yd;
[*]            $age['month'] = $m - $ym;
[*]            $age['year'] = $y - $yy;
[*]            return $age;
[*]      }else{
[*]            return 0;
[*]      }
[*]    }
  



页: [1]
查看完整版本: PHP计算年龄的函数