From fce3e8c44aba597c2e08b05ab81da6f4e75282a1 Mon Sep 17 00:00:00 2001 From: wanghongjun <1445693971@qq,com> Date: Mon, 19 Jun 2023 11:52:06 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=98=E5=8E=9F=E5=85=AC=E5=85=B1=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common.php | 76 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 49 insertions(+), 27 deletions(-) diff --git a/app/common.php b/app/common.php index df9d71b..0471d9d 100644 --- a/app/common.php +++ b/app/common.php @@ -140,36 +140,58 @@ function base_url() return $baseUrl; } -function getStartAndEndDatetime($period) { - switch ($period) { - case 'today': - $startDatetime = strtotime('today'); - $endDatetime = strtotime('tomorrow - 1 second'); - break; - case 'this_week': - $startDatetime = strtotime('this week'); - $endDatetime = strtotime('next week - 1 second'); - break; - case 'this_month': - $startDatetime = strtotime('first day of this month'); - $endDatetime = strtotime('first day of next month - 1 second'); - break; - case 'this_year': - $startDatetime = strtotime('first day of January this year'); - $endDatetime = strtotime('first day of January next year - 1 second'); - break; - default: - return null; - } +/** + * 获取 天,周,月,年 开始时间~结束时间 + * @param $granularity + * @return array + */ +function getTargetDate($granularity = 'all') { - $startDatetimeStr = date('Y-m-d H:i:s', $startDatetime); - $endDatetimeStr = date('Y-m-d H:i:s', $endDatetime); + $data = []; - return [ - 'start_datetime' => $startDatetimeStr, - 'end_datetime' => $endDatetimeStr - ]; + if ($granularity === 'day' || $granularity === 'all') { + $date = $granularity !== 'all' ? $granularity : 'day'; + $data[$date] = [ + 'start_time' => strtotime('today'), + 'end_time' => strtotime('tomorrow - 1 second'), + ]; + } + if ($granularity === 'week' || $granularity === 'all') { + $date = $granularity !== 'all' ? $granularity : 'week'; + $data[$date] = [ + 'start_time' => strtotime('this week midnight'), + 'end_time' => strtotime('next week midnight - 1 second'), + ]; + } + if ($granularity === 'month' || $granularity === 'all') { + $date = $granularity !== 'all' ? $granularity : 'month'; + $data[$date] = [ + 'start_time' => strtotime(date('Y-m-01 00:00:00')), + 'end_time' => strtotime(date('Y-m-t 23:59:59')), + ]; + } + if ($granularity === 'year' || $granularity === 'all') { + $date = $granularity !== 'all' ? $granularity : 'year'; + $data[$date] = [ + 'start_time' => strtotime('first day of January this year'), + 'end_time' => strtotime('first day of January next year - 1 second'), + ]; + } + + foreach ($data as &$val) { + $val['c_start_time'] = date("c",$val['start_time']); + $val['c_end_time'] = date("c",$val['end_time']); + $val['start_time'] = date("Y-m-d H:i:s",$val['start_time']); + $val['end_time'] = date("Y-m-d H:i:s",$val['end_time']); + } + return $data; } + +/** + * 特殊处理数字 + * @param $number + * @return string + */ function formatNumber($number) { if ($number < 10000) {