zilong пре 4 година
родитељ
комит
1c31e0d832
1 измењених фајлова са 24 додато и 11 уклоњено
  1. 24 11
      app/Helpers/functions.php

+ 24 - 11
app/Helpers/functions.php

xqd
@@ -145,23 +145,36 @@ if (!function_exists('build_sn')) {
 }
 
 //生日转年龄
-if (!function_exists('birthday_to_age')){
+if (!function_exists('birthday_to_age')) {
     function birthday_to_age($birthday)
     {
-        if($birthday==null)
-        {
-            return "0岁";
+        $date2 = date('Y-m-d');
+        list($y1, $m1, $d1) = explode('-', $birthday);
+        list($y2, $m2, $d2) = explode('-', $date2);
+        $y = $y2 - $y1;
+        $m = $m2 - $m1;
+        $d = $d2 - $d1;
+        if ($d < 0) {
+            $d += (int)date('t', strtotime("-1 month $date2"));
+            $m = $m - 1;
         }
-        list($year, $month, $day) = explode("-", $birthday);
-        $year_diff = (date("Y") - $year) > 0 ? date("Y") - $year.'岁':'';
-        $month_diff = (date("m") - $month) > 0 ? date("m") - $month.'个月':'';
-        $day_diff = (date("d") - $day) > 0 ? date("d") - $day.'天':'';
-        if ($day_diff < 0 || $month_diff < 0) {
-            $year_diff--;
+        if ($m < 0) {
+            $m += 12;
+            $y = $y - 1;
         }
-        return $year_diff.$month_diff.$day_diff ;
+
+        if ($y == 0 && $m == 0 && $d != 0) {
+            return $d . '岁';
+        } elseif ($y == 0 && $m != 0 && $d != 0) {
+            return $m . '个月' . $d . '天';
+        } elseif ($y != 0 && $m == 0 && $d != 0) {
+            return $y . '岁' . $d . '天';
+        }
+
+        return $y . '岁' . $m . '个月' . $d . '天';
     }
 }
+
 //计算经纬度两点之间距离(返回为米)
 if (!function_exists('get_distance')) {
     function get_distance($lat1, $lng1, $lat2, $lng2)