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

 

  1. /** 
  2.      *  计算生日到现在的时间 
  3.      * @param int $birthday    宝贝生日 
  4.      */ 
  5.     function age($birthday) { 
  6.         $now = date('Ymd'); 
  7.         //分解当前日期为年月日 
  8.         $y = (int) ($now / 10000); 
  9.         $m = (int) (($now % 10000) / 100); 
  10.         $d = $now % 100; 
  11.         //分解生日为年月日 
  12.         $yy = (int) ($birthday / 10000); 
  13.         $ym = (int) (($birthday % 10000) / 100); 
  14.         $yd = $birthday % 100; 
  15.         //特殊日期计算 
  16.         if ($years % 4 == 0 || ($years % 100 == 0 && $years % 400 == 0)) { 
  17.             $special = 29; 
  18.         } else { 
  19.             $special = 28; 
  20.         } 
  21.         //各月的上个月的天数 
  22.         switch ($m) { 
  23.             case 2:$add = 31; 
  24.             case 3:$add = 31; 
  25.             case 6:$add = 31; 
  26.             case 8:$add = 31; 
  27.             case 9:$add = 31; 
  28.             case 11:$add = 31; 
  29.             case 1:$add = 31; 
  30.             case 5:$add = 30; 
  31.             case 7:$add = 30; 
  32.             case 10:$add = 30; 
  33.             case 12:$add = 30; 
  34.             case 3:$add = $special
  35.         } 
  36.         if ($d < $yd) { 
  37.             $d+=$add
  38.             $m-=1; 
  39.         } 
  40.         if ($m < $ym) { 
  41.             $m+=12; 
  42.             $y-=1; 
  43.         } 
  44.         //运算年龄 
  45.         if ($now >= $birthday) { 
  46.             $age['day'] = $d - $yd
  47.             $age['month'] = $m - $ym
  48.             $age['year'] = $y - $yy
  49.             return $age
  50.         }else
  51.             return 0; 
  52.         } 
  53.     }