wzh 5 éve
szülő
commit
9360f410d1
1 módosított fájl, 49 hozzáadás és 0 törlés
  1. 49 0
      api/application/helpers/function_helper.php

+ 49 - 0
api/application/helpers/function_helper.php

@@ -487,6 +487,55 @@ function get_time_by_timezone($timezone){
     return date('Y-m-d H:i:s',$time + $timezone*3600);
 }
 
+// 给定时间、时区计算目标时区时间
+function date_change($date,$start,$end){
+    $H = intval(date('H',strtotime($date)));
+    $d = intval(date('d',strtotime($date)));
+    $m = intval(date('m',strtotime($date)));
+    $Y = intval(date('Y',strtotime($date)));
+
+    if ($m <= 1) {
+        $beginDateMonth = date(($Y-1).'-12-01', strtotime($date));
+    }else{
+        $beginDateMonth = date($Y.'-'.($m-1).'-01', strtotime($date));
+    }
+    $day = intval(date('d', strtotime("$beginDateMonth +1 month -1 day"))); 
+    $day1 = intval(date('d', strtotime(date('Y-m-01',strtotime($date))." +1 month -1 day"))); 
+
+    $H1 = $H-($start - $end);
+    if ($H1 < 0) {
+        $H1 += 24;
+        if ($d <= 1) {
+            $d = $day;
+            if ($m <= 1) {
+                $Y -= 1;
+                $m = 12;
+            }else{
+                $m -= 1;
+            }
+        }else{
+            $d -= 1;
+        }
+    }elseif ($H1 >= 24) {
+        $H1 -= 24;
+        if ($d >= $day1) {
+            $d = 1;
+            if ($m >= 12) {
+                $m = 1;
+                $Y += 1;
+            }else{
+                $m += 1;
+            }
+        }else{
+            $d += 1;
+        }
+    }
+    if ($m < 10) $m = '0'.$m;
+    if ($d < 10) $d = '0'.$d;
+    if ($H1 < 10) $H1 = '0'.$H1;
+    return date("{$Y}-{$m}-{$d} {$H1}:i:s",strtotime($date));
+}
+
 // 文件下载
 function file_download($filePath){
     $file_name = basename($filePath);     //下载文件名