当前位置: 首页 > news >正文

获取任意时间段内周、季度、半年的二级联动

#需求是获取两个时间内 年周 、年季度、年半年的二级联动#
找了半天也找不到什么有用的信息 就自己简单写了一个 思路是先获取年的列表再去嵌套查询

根据前端VUE提供的格式嵌套

public function getDate(){$leixing = Request::param('leixing');$larr = array('1','2','3','4');if(empty($leixing)){echo apireturn(201,'类型不正确','');die;}else{if(!in_array($leixing,$larr)){echo apireturn(201,'类型不正确','');die;}}$start = '2023-01-01';$start_time = strtotime($start);$end_time = time();$start_year = date('Y',$start_time);$end_year = date('Y',$end_time);$year_arr = array();if($start_year == $end_year){array_push($year_arr,$start_year);}else{//获取年份for($i=$end_year;$i>=$start_year;$i--){array_push($year_arr,(string)$i);} }$array = array();foreach ($year_arr as $k => $v){if($leixing == 1){$week_arr = array();//取周数if($end_year == $v){$endzhounum = date('W',time()+86400);if($start_year == $v){$startzhounum = intval(date('W',$start_time+86400));}else{$startzhounum = 1;}//获取周数for($i=$endzhounum;$i>=$startzhounum;$i--){array_push($week_arr,'第'.$i.'周');} }else{$year = $v."-01-01";$time = strtotime($year);$yearLastDay = strtotime("-1 day", strtotime("+1 year", $time));$endzhounum = date('W',$yearLastDay);if($start_year == $v){$startzhounum = date('W',$start_time+86400);}else{$startzhounum = 1;}//获取周数for($i=$endzhounum;$i>=$startzhounum;$i--){array_push($week_arr,'第'.$i.'周');} }$array[$v.'年'] = $week_arr;}else if($leixing == 2){$quarter_arr = array();//取周数if($end_year == $v){$endjinum = ceil(date('n',time()+86400)/3);if($start_year == $v){$startjinum = ceil(date('n',$start_time+86400)/3);}else{$startjinum = 1;}//获取周数for($i=$endjinum;$i>=$startjinum;$i--){array_push($quarter_arr,'第'.$i.'季度');} }else{$year = $v."-01-01";$time = strtotime($year);$yearLastDay = strtotime("-1 day", strtotime("+1 year", $time));$endjinum = ceil(date('n',$yearLastDay)/3);if($start_year == $v){$startjinum = ceil(date('n',$start_time+86400)/3);}else{$startjinum = 1;}//获取周数for($i=$endjinum;$i>=$startjinum;$i--){array_push($quarter_arr,'第'.$i.'季度');} }$array[$v.'年'] = $quarter_arr;}else if($leixing == 3){$banyear_arr = array();//取周数if($end_year == $v){$endjinum = ceil(date('n',time()+86400)/6);if($start_year == $v){$startjinum = ceil(date('n',$start_time+86400)/6);}else{$startjinum = 1;}//获取周数for($i=$endjinum;$i>=$startjinum;$i--){if($i == 1){array_push($banyear_arr,'上半年');}else{array_push($banyear_arr,'下半年');}} }else{$year = $v."-01-01";$time = strtotime($year);$yearLastDay = strtotime("-1 day", strtotime("+1 year", $time));$endjinum = ceil(date('n',$yearLastDay)/6);if($start_year == $v){$startjinum = ceil(date('n',$start_time+86400)/6);}else{$startjinum = 1;}//获取周数for($i=$endjinum;$i>=$startjinum;$i--){if($i == 1){array_push($banyear_arr,'上半年');}else{array_push($banyear_arr,'下半年');}} }$array[$v.'年'] = $banyear_arr;}else if($leixing == 4){$array = $year_arr;}}echo apireturn(200,'success',$array);die;}

leixing的值为1 查询年-周、2为年-季度、3年-半年、4年

运行结果如下(年-季度)

{"status": 200,"msg": "success","data": {"2023年": ["第4季度","第3季度","第2季度","第1季度"]}
}

#开始时间目前是写死的 可以根据自己需求修改#

http://www.lryc.cn/news/223959.html

相关文章:

  • 前端面试系列之工程化篇
  • 京东按关键词搜索商品列表接口:竞品分析,商品管理,营销策略制定
  • Microsoft Dynamics 365 CE 扩展定制 - 9. Dynamics 365扩展
  • 多篇论文介绍-Wiou
  • Django介绍,安装,创建
  • Java通过javacv获取视频、音频、图片等元数据信息(分辨率、大小、帧等信息)
  • flask和fastapi的区别以及demo实现
  • python特殊循环队列_队中元素个数代替队尾指针
  • 什么是观察者模式?用 Python 如何实现 Observer(观察者或发布订阅)对象行为型模式?
  • pytorch直线拟合
  • 相机传感器
  • 大语言模型的关键技术
  • uniapp使用vur-cli新建项目并打包
  • 后台管理系统解决方案-中大型-Vben Admin
  • 通俗理解repartition和coalesce区别
  • 优雅设计之美:实现Vue应用程序的时尚布局
  • 05预测识别-依托YOLO V8进行训练模型的识别——对视频中的目标进行跟踪统计
  • Android Studio(意图Intent)
  • Bean作用域
  • YOLOV5----修改损失函数-SE
  • Mybatis(一)
  • 使用Go构建一个Postgres流平台
  • QT基础与细节理解
  • 【MySQL数据库】 六
  • 微信总提示空间不足怎么办?三个方法随心选!
  • C语言每日一题(27)链表中倒数第k个结点
  • pdf转word
  • LeetCode热题100——二叉树
  • 【Linux】文件重定向以及一切皆文件
  • Go进阶之rpc和grpc