利用时间维度统计分页

简介: 在进行数据统计的时候,不能简单的通过数据表数据条数进行分页。这时,可以通过时间维度进行分页。 //以时间作为查询条件进行用户统计查询 startdate=request(date)[start]?:;end_date = request('date')['end'].

在进行数据统计的时候,不能简单的通过数据表数据条数进行分页。这时,可以通过时间维度进行分页。

//以时间作为查询条件进行用户统计查询

$start_date = request('date')['start'] ? : '';
$end_date = request('date')['end'] ? : '';

//以时间维度降序排列

//分页的最后一条数据时间
if ($start_date) {
    $start_at = $start_date;
} else {
    //$min_date 查询录入用户表里最早一个用户的日期(这里使用的时间戳)
    $start_at = $min_date ? date('Y-m-d', strtotime($min_date)) : date('Y-m-d', time());
}

//分页的第一条数据时间
if ($end_date) {
    $end_at = $end_date;
} else {
    $end_at = date('Y-m-d', time());
}

//计算第一条数据和最后一条数据两个时间的天数差
$days = (strtotime($end_at) - strtotime($start_at)) / (24 * 60 * 60) + 1;

//分页
$page = request('page') ?: 1;//页码
$per_page = request('per_page') ?: 15;//每页显示的条数

$max_page = ceil($days / $per_page);//最大页数

//页码不在合理范围,返回原页面
if ($page <= 0 || $page > $max_page) {
    return back();
}

//每页循环开始数字
$per_start = ($page - 1) * $per_page + 1;
//每页循环结束数字
$per_end = $page * $per_page;
$per_end = ($per_end < $days) ? $per_end : $days;

$lists = [];
for ($i = $per_start - 1; $i < $per_end; $i++) {
    $date = date('Y-m-d', strtotime("{$end_at} -{$i} days"));
    //根据当天时间,作为查询条件,查询业务模型数据,将数据返回结果追加到 $lists 数组里
    ...
}

//最后将 $lists 返回到页面展示
AI 代码解读
Fang
+关注
目录
打赏
0
0
0
0
1
分享
相关文章
SQL查询次数大于1的记录:高效技巧与方法
在数据库管理中,经常需要统计某些操作的次数,特别是当需要找出哪些记录或值出现的次数超过一定阈值(如大于1次)时
函数计算产品使用问题之怎么查询在特定时间段内应用的调用次数
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
分页最好的作用是做好统计,可以用来基本条件列表的统计,可以用来统计多平台,使之呈现列表,预算统计,以及必要的技术,项目名称,常用链接
分页最好的作用是做好统计,可以用来基本条件列表的统计,可以用来统计多平台,使之呈现列表,预算统计,以及必要的技术,项目名称,常用链接
7-19 树种统计 (10 分)
7-19 树种统计 (10 分)
128 0
Excel 技术篇-跨页签统计某一区域下符合条件值的数量方法,COUNTIF函数、数量统计公式的用法实例演示
Excel 技术篇-跨页签统计某一区域下符合条件值的数量方法,COUNTIF函数、数量统计公式的用法实例演示
418 0
Excel 技术篇-跨页签统计某一区域下符合条件值的数量方法,COUNTIF函数、数量统计公式的用法实例演示
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等