[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 ```