From 7aec53b70e2fec540d4795672796a50ca48d67e3 Mon Sep 17 00:00:00 2001 From: gongfuxiang <2499232802@qq.com> Date: Sat, 23 Feb 2019 10:04:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/service/StatisticalService.php | 65 ++++++++++++---------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/application/service/StatisticalService.php b/application/service/StatisticalService.php index d532f5f59..18ef09464 100644 --- a/application/service/StatisticalService.php +++ b/application/service/StatisticalService.php @@ -50,38 +50,45 @@ class StatisticalService */ public static function Init($params = []) { - // 近7天日期 - self::$seven_time_start = strtotime(date('Y-m-d 00:00:00', strtotime('-7 day'))); - self::$seven_time_end = time(); - - // 昨天日期 - self::$yesterday_time_start = strtotime(date('Y-m-d 00:00:00', strtotime('-1 day'))); - self::$yesterday_time_end = strtotime(date('Y-m-d 23:59:59', strtotime('-1 day'))); - - // 今天日期 - self::$today_time_start = strtotime(date('Y-m-d 00:00:00')); - self::$today_time_end = time(); - - // 近3天,近7天,近15天,近30天 - $nearly_all = [ - 3 => 'nearly_three_days', - 7 => 'nearly_seven_days', - 15 => 'nearly_fifteen_days', - 30 => 'nearly_thirty_days', - ]; - foreach($nearly_all as $day=>$name) + static $object = null; + if(!is_object($object)) { - $date = []; - $time = time(); - for($i=0; $i<$day; $i++) + // 初始化标记对象,避免重复初始化 + $object = (object) []; + + // 近7天日期 + self::$seven_time_start = strtotime(date('Y-m-d 00:00:00', strtotime('-7 day'))); + self::$seven_time_end = time(); + + // 昨天日期 + self::$yesterday_time_start = strtotime(date('Y-m-d 00:00:00', strtotime('-1 day'))); + self::$yesterday_time_end = strtotime(date('Y-m-d 23:59:59', strtotime('-1 day'))); + + // 今天日期 + self::$today_time_start = strtotime(date('Y-m-d 00:00:00')); + self::$today_time_end = time(); + + // 近3天,近7天,近15天,近30天 + $nearly_all = [ + 3 => 'nearly_three_days', + 7 => 'nearly_seven_days', + 15 => 'nearly_fifteen_days', + 30 => 'nearly_thirty_days', + ]; + foreach($nearly_all as $day=>$name) { - $date[] = [ - 'start_time' => strtotime(date('Y-m-d 00:00:00', time()-$i*3600*24)), - 'end_time' => strtotime(date('Y-m-d 23:59:59', time()-$i*3600*24)), - 'name' => date('Y-m-d', time()-$i*3600*24), - ]; + $date = []; + $time = time(); + for($i=0; $i<$day; $i++) + { + $date[] = [ + 'start_time' => strtotime(date('Y-m-d 00:00:00', time()-$i*3600*24)), + 'end_time' => strtotime(date('Y-m-d 23:59:59', time()-$i*3600*24)), + 'name' => date('Y-m-d', time()-$i*3600*24), + ]; + } + self::${$name} = $date; } - self::${$name} = $date; } } -- GitLab