[TOC] #### 前言 --- 框架內置了常用的時間查詢方法,參考官方文檔:[https://www.kancloud.cn/manual/thinkphp6_0/1037565](https://www.kancloud.cn/manual/thinkphp6_0/1037565) #### 1、查詢今天,昨天、某天的數據 --- **查詢今天的數據,下面兩種查詢方法等價** ``` whereDay('create_time') whereTime('create_time', 'today') ``` **查詢昨天的數據** ``` whereDay('create_time', 'yesterday') ``` #### 2、查詢本周數據 --- 查詢方法 ``` whereWeek('create_time') ``` #### 3、查詢今天、本周、本月、本季度、本年數據(搜索器) --- ``` /** * 根據時間篩選數據 */ public function searchTimeAttr($query, $value, $data) { switch ($value) { case 'today': //今日 $query->whereDay('create_time'); break; case 'week': //本周 $query->whereWeek('create_time'); break; case 'month': //本月 $query->whereMonth('create_time'); break; case 'year': //本年 $query->whereYear('create_time'); break; case 'quarter': //本季度 $query->whereBetweenTime('create_time', ...getQuarterTime()); break; default: break; } } ``` **在 common.php 中定義getQuarterTime() 函數** ``` /** * 獲取當前季度時間范圍 */ function getQuarterTime() { $month = intval(date('m')); if ($month < 4) { $start = date('Y-01-01 00:00:00'); $end = date("Y-03-31 23:59:59"); } else if ($month < 7) { $start = date('Y-04-01 00:00:00'); $end = date("Y-06-30 23:59:59"); } else if ($month < 10) { $start = date('Y-07-01 00:00:00'); $end = date("Y-09-30 23:59:59"); } else { $start = date('Y-10-01 00:00:00'); $end = date("Y-12-31 23:59:59"); } return [$start, $end]; } ``` #### 4、常用時間相關操作 --- **明天某個時間的日期** ``` date('Y-m-d', strtotime('+1 days')) . ' 07:00:00' ``` **今天時間戳范圍** ``` strtotime(date('Y-m-d')) strtotime(date('Y-m-d', strtotime('+1 days'))) - 1 ```