PHP 自提时间

前端:

后台设置: 

代码:

 public function getBusinessHour(){// 需求单门店$data = (new StoreModel())->limit(1)->select()->toArray();$days = explode(',', $data[0]['shop_hours']);$businessHours = $days[1];// 使用 explode 分割字符串,获取开始和结束时间list($startTime, $endTime) = explode('-', $businessHours);// 初始化结果数组$timePeriods = [];// 将开始时间转换为时间戳$current = strtotime($startTime);// 循环直到当前时间戳等于或超过结束时间while ($current <= strtotime($endTime)) {// 计算结束时间,如果是最后一时间段,则使用原始的结束时间$end = ($current == strtotime($endTime)) ? $endTime : date('H:i', strtotime('+30 minutes', $current));// 格式化当前时间段并添加到结果数组$timePeriods[] = date('H:i', $current) . '-' . $end;// 将当前时间戳增加30分钟$current = strtotime('+30 minutes', $current);}if (isset($days[0])) {preg_match('/(.*?)至(.*)/', $days[0], $matches);$res = [];$currentDate = date('Y-m-d H:i:s');// 使用strftime函数获取当前是周几的数字$weekdayNumber = date('w', strtotime($currentDate));// 定义一个数组来将数字表示的周几转换为中文$weekdays = ['日', '一', '二', '三', '四', '五', '六'];// 获取当前是周几的中文名称switch ($matches[2]) {case '周二':$i = 2;break;case '周三':$i = 3;break;case '周四':$i = 4;break;case '周五':$i = 5;break;case '周六':$i = 6;break;case '周日':$i = 7;break;case '周一':default:$i = 1;break;}$dayOfWeek = date('N');// 计算从当前日期到周五的剩余工作日天数$remainingWorkdays = $i - $dayOfWeek + 1;for ($j = 0; $j < $remainingWorkdays; $j++) {// 获取循环中的当前工作日$currentDay = ($dayOfWeek + $j - 1) % 7;if ($currentDay == 0) {$currentDay = 7; // 周日}// 计算具体的月和日,增加 $j 天(不包括当前天)$targetDate = date('Y-m-d', strtotime("+$j day", strtotime($currentDate)));$targetDateWeekdayNumber = date('w', strtotime($targetDate)); // 获取 $targetDate 对应的周几数字$targetDateWeekdayChinese = $weekdays[$targetDateWeekdayNumber]; // 获取 $targetDate 对应的周几中文名称$res[$targetDate][] = $targetDate . '(' .'周'. $targetDateWeekdayChinese . ')';; // 当天的日期// 假设 $days[1] 是您要添加的数据,这里直接引用$res[$targetDate][] =  $timePeriods;}return $res;}}

结果:

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

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

相关文章

ListView[new]

activity_main.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_height"match_parent"android:layout_width"match_parent"…

服务器租用中包含哪些?

服务器在目前的互联网社会中起着十分重要的作用&#xff0c;服务器是网络业务部署的重要载体&#xff0c;越来越多的企业和用户选择租用服务器业务来减少整体的成本&#xff0c;那么服务器租用中主要都包含哪些呢&#xff1f;接下来小编就来介绍一些其中的内容吧&#xff01; 首…

nginx 发布静态资源

一. nginx 发布静态资源 在nginx中nginx.conf配置文件中添加内容如下&#xff1a; server {listen 90;server_name localhost;# 配置静态资源文件&#xff0c;就可以访问了location / {root /home/fooie-shop;index index.html;}# 配置音频和图片资源location /imoo…

企业内部文化社区究竟有哪些好处?

首先&#xff0c;我们来了解下&#xff0c;企业内耗是什么? 在企业文化管理中&#xff0c;内耗是一个常见的问题&#xff0c;它会影响企业的团队协作、执行效率和绩效表现。在2023《哈佛商业评论》中国年会上&#xff0c;北大汇丰商学院管理实践教授陈玮分享了他对组织管理的…

冯喜运:5.14今日黄金原油涨跌走势分析操作建议

【黄金消息面分析】&#xff1a;本周黄金市场将迎来关键的美国通胀数据&#xff0c;包括周二的生产者价格指数(PPI)和周三的消费者物价指数(CPI)。这些数据对美联储的政策路径至关重要&#xff0c;可能会影响市场对利率调整的预期。目前&#xff0c;现货黄金价格小幅上涨&#…

使用java.io库序列化Java对象

在我们使用诸如Redis这类缓存系统时&#xff0c;我们往往会存在如下需求&#xff1a;将Java对象保存到Redis缓存中&#xff0c;然后在其他机器上还原回来。 Json方案 我们可以引入Json库等方式&#xff0c;将Java对象序列化为Json字符串来实现这个目的&#xff0c;但是这样的…

《四》系统模块整体功能关联与实现

在上一篇里&#xff0c;我们完成了动作的创建&#xff0c;那么这一次&#xff0c;我们把它加载到界面上&#xff0c;把需要是实现的动作都加上。 MyWord::MyWord(QWidget *parent): QMainWindow(parent) {mdiAreanew QMdiArea;mdiArea->setHorizontalScrollBarPolicy(Qt::S…

【Cesium解读】Cesium中primitive/entity贴地

官方案例 Cesium Sandcastle Cesium Sandcastle 好文推荐&#xff1a;Cesium贴地设置_primitive贴地-CSDN博客 scene.globe.depthTestAgainstTerrain true; True if primitives such as billboards, polylines, labels, etc. should be depth-tested against the terrain…

释放系统C盘的ext4.vhdx

ext4.vhdx 是个虚拟磁盘&#xff0c;默认位置为 C:\Users{用户名}\AppData\Local\Docker\wsl\data\ext4.vhdx&#xff0c;会占用很大磁盘空间&#xff0c;可采用下列办法将其改到其它磁盘或分区&#xff0c;如D分区。 1、查看有哪些&#xff1a; # wsl -l -vNAME …

静态代码扫描问题修复之--(输入验证 重定向[NodeJS])

问题描述: 当应用程序直接使用未经验证的用户输入来控制重定向URL时,存在安全隐患。攻击者可借此机会操纵输入,引导用户访问恶意网站,实施网络钓鱼等攻击。这在JavaScript前端代码及Node.js后端逻辑中均需警惕。 案例分析: 应用程序允许未验证的用户输入控制重定向中的UR…

MYSQL主从灾难恢复

方案背景 MySQL一主一从,当主库操作系统宕机无法启动,vip已漂移到从库,原从库成为主库单实例支撑业务。在新建主机上新建MySQL实例,配置为当前vip所在实例的从库,恢复MySQL一主一从。 2 恢复步骤 2.1 新建MySQL实例 2.1.1 解压安装包 #将二进制包上传至/usr/local/然后解…

Android Q - 音频通路调试

对于当前模块不是很清楚&#xff0c;刚好有个项目这方面有点问题&#xff0c;根据展锐支持文档一步步检查就可以了。首先得先弄清楚硬件具体是怎么连接的&#xff0c;比如文档提到的案例&#xff1a;sprd codec speaker output 连接外部 PA。 耳机接的是什么&#xff0c;speake…

C/C++关键字:extern

文章目录 一、extern&#xff1a;声明外部变量或外部函数1.extern的作用2.代码举例①例1②例2③例3 一、extern&#xff1a;声明外部变量或外部函数 1.extern的作用 extern的作用&#xff1a;声明外部的全局变量或外部的函数&#xff0c;以实现跨文件使用其他.c/.h文件的全局…

【Vue】vue项目中使用高德地图教程

在Vue项目中显示高德地图&#xff0c;你需要按照以下步骤进行 1. 注册高德开发者账号并获取API密钥2. 在Vue项目中引入高德地图API3. 在Vue组件中创建地图容器4. 在Vue组件中初始化地图5. 添加其他地图组件&#xff08;可选&#xff09;6. 处理地图事件&#xff08;可选&#x…

[链表专题]力扣82

1. 力扣82 : 删除排序链表中的重复元素 题 : 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字 。返回 已排序的链表 。示例 1&#xff1a;输入&#xff1a;head [1,2,3,3,4,4,5] 输出&#xff1a;[1,2,5] 示例 …

【YOLO改进】换遍MMDET主干网络之Pyramid Vision Transformer(PVT)(基于MMYOLO)

Pyramid Vision Transformer&#xff08;PVT&#xff09; Pyramid Vision Transformer&#xff08;PVT&#xff09;是一种深度学习模型&#xff0c;它结合了Transformer架构和金字塔结构&#xff0c;旨在将Transformer的强大能力引入计算机视觉任务中&#xff0c;特别是那些需…

如何深入理解业务需求和业务流程?

要深入理解业务需求和业务流程&#xff0c;可以尝试以下方法&#xff1a; 1. 积极参与需求讨论&#xff1a;在相关会议中认真聆听&#xff0c;提出问题&#xff0c;与业务人员充分交流。 2. 研读业务文档&#xff1a;仔细分析业务规划、产品说明等文档&#xff0c;梳理出关键…

SQL练习题2.1

建表 # 学生表 create table t_student (stu_id varchar(10),stu_name varchar(10),stu_age datetime,stu_sex varchar(10) );# 课程表 create table t_t_course (c_id varchar(10),c_name varchar(10),c_teaid varchar(10) );# 教师表 create table t_t_teacher (tea…

C语言中数组与指针的区别

一. 简介 本文学习了 C语言中数组与指针的区别。这样的话&#xff0c;可以在编写C代码时规避掉出错的问题。 二. C语言中数组与指针的区别 1. 数组 定义字符串数组时&#xff0c;必须让编译器知道需要多少空间。 一种方法是用足够空间的数组存储字符串。例如如下&#xf…

DOM重点核心(注册事件+DOM事件流)

目录 1.注册事件 注册时间概述 addEventListener() 删除事件 2.DOM事件流 DOM事件流理论 事件对象 事件对象的常见属性和方法 e.targe 和 this的区别 阻止默认行为 阻止冒泡 事件委托 禁止右键菜单和禁止选中文字 获得鼠标的坐标&#xff08;可视区、页面、浏览器…