thinkphp:查询本周中每天中日期的数据

news2024/12/23 19:03:41

以今天2023-09-14为例,这一周为2023-09-11~2023-09-07

运行结果

 结果:

代码

后端thinkphp: 

//查询本周每天的的总金额数
//获取本周的起始日期和结束日期
$weekStart = date('Y-m-d', strtotime('this week Monday'));
$weekEnd = date('Y-m-d', strtotime('this week Sunday'));
// 构造日期范围数组(从周一到周天)
$dateRange = [];
$currentDate = $weekStart;
while ($currentDate <= $weekEnd) {
    $dateRange[] = $currentDate;
    $currentDate = date('Y-m-d', strtotime($currentDate . ' +1 day'));
}
// 查询每天的总金额数
$result = Db::table('so_headers_all')
    ->field("DATE_FORMAT(FROM_UNIXTIME(creation_date), '%Y-%m-%d') AS date, IFNULL(SUM(order_all_amount), 0) AS total_amount")
    ->whereTime('creation_date', '>=', $weekStart)
    ->whereTime('creation_date', '<=', $weekEnd)
    ->group('date')
    ->select();
// 构造最终结果数组
$resultArray = [];
foreach ($dateRange as $date) {
    $found = false;
    foreach ($result as $row) {
        if ($row['date'] == $date) {
            $resultArray[] = $row;
            $found = true;
            break;
        }
    }
    if (!$found) {
        $resultArray[] = ['date' => $date, 'total_amount' => 0];
    }
}
$data['week_info'] = $resultArray;

扩展:增加星期

结果

代码

后端thinkphp: 

//查询本周每天的的总金额数
//获取本周的起始日期和结束日期
$weekStart = date('Y-m-d', strtotime('this week Monday'));
$weekEnd = date('Y-m-d', strtotime('this week Sunday'));
// 构造日期范围数组(从周一到周天)
$dateRange = [];
$currentDate = $weekStart;
while ($currentDate <= $weekEnd) {
    $dateRange[] = $currentDate;
    $currentDate = date('Y-m-d', strtotime($currentDate . ' +1 day'));
}
// 查询每天的总金额数
$result = Db::table('so_headers_all')
    ->field("DATE_FORMAT(FROM_UNIXTIME(creation_date), '%Y-%m-%d') AS date, IFNULL(SUM(order_all_amount), 0) AS total_amount")
    ->whereTime('creation_date', '>=', $weekStart)
    ->whereTime('creation_date', '<=', $weekEnd)
    ->group('date')
    ->select();
//去掉逗号,转换为
foreach ($result as &$item) {
    // $item['total_amount'] = intval(($item['total_amount'] / 10000));
    $item['total_amount'] = round(($item['total_amount'] / 10000),2);
}
// 构造最终结果数组
$resultArray = [];
$dateArray = [];
$totalAmountArray = [];
$weekdays = ['星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];

foreach ($dateRange as $date) {
    $found = false;
    foreach ($result as $row) {
        if ($row['date'] == $date) {
            $weekdayIndex = date('w', strtotime($row['date']));
            $row['name'] = $weekdays[$weekdayIndex];
            $resultArray[] = $row;
            $dateArray[] = $row['date'];
            $totalAmountArray[] = $row['total_amount'];
            $found = true;
            break;
        }
    }
    if (!$found) {
        $weekdayIndex = date('w', strtotime($date));
        $resultArray[] = ['date' => $date, 'total_amount' => 0, 'name' => $weekdays[$weekdayIndex]];
        $dateArray[] = $date;
        $totalAmountArray[] = 0;
    }
}
$data['week_info']['date'] = $dateArray;
$data['week_info']['total_amount'] = $totalAmountArray;
$data['week_info1'] = $resultArray;
echo json_encode($data);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1011973.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Vue】大悟!模板语法-插值语法指令语法

模板语法 Vue模板语法包括两大类 插值语法 插值语法也就是两个大括号&#xff0c;也叫Mustache 功能&#xff1a;用于解析标签体内容&#xff0c;可以进行运算、三元表达式等,将最终解析出来的内容插入到标签中 写法&#xff1a;{{xxx}}&#xff0c;xxx 是 js 表达式&…

RSA算法研究报告

摘 要 分析RSA算法的应用现状&#xff0c;论证文件加密应用RSA算法的可行性和意义。设计一套完整实用的RSA文件加密解决方案&#xff0c;具体编码实现。对RSA算法进行研究&#xff0c;从常规RSA算法出发&#xff0c;用C实现RSA加密算法类库&#xff0c;并在32位windows平台封装…

如何将 OBJ 模型转换和压缩为 GLTF 以与 AWS IoT TwinMaker 配合使用

推荐&#xff1a;使用NSDT场景编辑器快速搭建3D应用场景 概述 在这篇博文中&#xff0c;引用了几种文件扩展名和模型格式。在开始之前&#xff0c;最好了解以下内容&#xff1a; OBJ – 对象文件&#xff0c;一种标准的 3D 图像格式&#xff0c;可以通过各种 3D 图像编辑程序…

在springboot下将mybatis升级为mybatis-plus

在springboot下将mybatis升级为mybatis-plus 1. 整体描述2. 具体步骤2.1 更新pom引用2.2 更新yml配置2.3 更新config配置2.4 BaseEntity修改 3. 程序启动4. 总结 1. 整体描述 之前项目工程用的是mybatis&#xff0c;现在需要将其替换为mybatis-plus&#xff0c;mybatis-plus的…

实用技巧:Linux上实现OpenGauss数据库远程连接,方便的跨网络数据操作

文章目录 前言1. Linux 安装 openGauss2. Linux 安装cpolar3. 创建openGauss主节点端口号公网地址4. 远程连接openGauss5. 固定连接TCP公网地址6. 固定地址连接测试 &#x1f341; 小结 &#x1f341; 前言 openGauss是一款开源关系型数据库管理系统&#xff0c;采用木兰宽松许…

解决WIN11笔记本Type-C转DP线外接显示器重启开机没信号无法识别需再次插拔问题

在最新的WIN11系统中&#xff0c;你如果使用Type-C转DP线外接显示器&#xff0c;每次开机的时候或许会出现显示器没有信号的问题。这是因为你的显示器和转接线作为USB外设进入休眠了&#xff0c;导致需要再次插拔才能识别出来&#xff0c;不仅麻烦而且一次次插拔转接线是有磨损…

微信管理系统自动添加好友功能

你是否有这样的困扰&#xff0c;为什么你在添加多个好友的时候&#xff0c;容易添加频繁。你要先知道底层的规则是怎么样的&#xff0c;才能尽可能的去避免添加频繁&#xff0c;加到更多的好友。 微信主动添加好友的规则&#xff1a; ①通过附近人功能加人上限15人/天&#xf…

评价指标和超参数调整进阶

文章目录 查准率 查全率 F1 scoreGridSearchCV概述score参数的修改 classification report 目标&#xff1a; 综合考虑查准率和查全率&#xff0c;来确定最佳模型参数。 查准率 查全率 F1 score https://blog.csdn.net/qq_47180202/article/details/119780943 from sklea…

嵌入式学习笔记(31)异常向量表的编程处理

6.5.1像内存一样去访问异常向量表 &#xff08;1&#xff09;S5PV210的异常向量表可以改变&#xff08;在CP15协处理器中&#xff09;&#xff0c;以适应操作系统的需求。但是目前系统刚启动&#xff0c;此时DRAM尚未初始化&#xff0c;程序哦都市在iSRAM中运行。210在iSRAM中…

分享一个springboot+uniapp基于微信小程序的校医务室健康服务系统源码 lw 调试

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人七年开发经验&#xff0c;擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等&#xff0c;大家有这一块的问题可以一起交流&#xff01; &#x1f495;&…

笔记(二)图的基本表示【斯坦福CS224W图机器学习】

1、基础知识 图是由节点和连接组成的 本体图&#xff0c;具体图是本体图的实例化&#xff0c;取决于想要解决什么问题 2、图的种类 异质图 异质图-二分图 异质图-二分图-展开 3、节点连接数 节点的度、入度和出度 4、图的基本表示 邻接矩阵 无向图的邻接矩阵是对称阵&#…

Linux_dup、dup2函数

1.dup1 #include <unistd.h> int dup(int oldfd); 作用&#xff1a;复制一个新的文件描述符 从空闲的文件描述符表中&#xff0c;找一个最小的&#xff0c;作为新的拷贝的文件描述符 指向的文件和旧的文件描述符是一样的 int dup2(int oldfd, int newfd); #include <…

任意文件下载

原理&#xff1a; 文件查看或文件下载功能&#xff0c;不做限制&#xff0c;恶意用户就能够查看或下载任意敏感文件&#xff0c;这就是文件查看与下载漏洞。 一般链接形式: download.php?path down.php?file data.php?file download.php?filename 或者包含参数: &Sr…

python基础开发篇3——线上环境部署Django项目

文章目录 一、基本了解二、打包本地项目三、服务器环境准备四、安装web服务4.1 使用uwsgi代理4.2 使用nginx代理&#xff08;推荐&#xff09; 五、部署daphne 一、基本了解 部署思路&#xff1a; Nginx服务接收浏览器的动态请求&#xff0c;再通过uwsgi模块将请求转发给uwsgi服…

计算机网络(二):TCP篇

文章目录 1. TCP头部包含哪些内容&#xff1f;2. 为什么需要 TCP 协议&#xff1f; TCP 工作在哪一层&#xff1f;3. 什么是 TCP &#xff1f;4. 什么是 TCP 连接&#xff1f;5. 如何唯一确定一个 TCP 连接呢&#xff1f;6. UDP头部大小是多少&#xff1f;包含哪些内容&#xf…

基于SSM+Vue的鲸落文化线上体验馆设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

【NVM】nvm安装教程(nodejs多版本切换)

系列文章 C#底层库–记录日志帮助类 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/124187709 文章目录 系列文章前言一、安装准备1. 1 下载nvm-setup1. 2 卸载掉nodejs 二、安装步骤2.1 欢迎页面2.2 选择nvm安装目录2.3 选择nodejs安装目录2.4 安装…

进程间通信--信号

1&#xff1a;信号 什么是信号&#xff1f; 信号是给程序提供一种可以处理异步事件的方法&#xff0c;它利用软件中断来实现。不能自定义信号&#xff0c;所有信号都是系统预定义的。 信号由谁产生&#xff1f; 1)由shell终端根据当前发生的错误&#xff08;段错误、非法指令…

途虎养车IPO:飞轮效应下的汽车后市场巨头

汽车已经成为了家家户户必不可少的存在。作为消费品来说&#xff0c;汽车更新换代快&#xff0c;日常使用磨损大&#xff0c;随着智能汽车和新能源汽车市场的不断扩大&#xff0c;也给汽车售后服务产线带来了巨大的发展市场。保养以及维修市场的缺口越来越大&#xff0c;也为汽…

简明 SQL 子查询指南:掌握 EXISTS 实现数据筛选

子查询是一种在查询语句内部嵌套另一个完整查询的方式&#xff0c;用于获取更复杂的查询结果或数据过滤。在执行包含子查询的查询时&#xff0c;数据库引擎首先执行子查询&#xff0c;然后将其结果用作外层查询的条件或数据源。 以下两表作为后续SQL语句所用 table1 …