PHP 获取每个月的开始和结束时间

本文阅读 1 分钟
首页 PHP笔记 正文
  1. <?php
  2. /**
  3. * 获取每个月的开始和结束时间
  4. * @param $start
  5. * @param $end
  6. * @return array|string
  7. */
  8. function getMonthFromRange($start, $end)
  9. {
  10. if (!is_numeric($start) || !is_numeric($end) || ($end <= $start)) return '';
  11. $startTime = date('Y-m', $start);
  12. $endTime = date('Y-m', $end);
  13. //转为时间戳
  14. $startTime = strtotime($startTime . '-01');
  15. $endTime = strtotime($endTime . '-01');
  16. $i = 0;
  17. $lastData = array();
  18. while($startTime<=$endTime){
  19. $month = array();
  20. //这里累加每个月的的总秒数 计算公式:上一月1号的时间戳秒数减去当前月的时间戳秒数
  21. if ($i == 0) {
  22. $month[] = date('Y-m-d H:i:s', $start);
  23. $firstday = date('Y-m-01', $start);
  24. $month[] = date('Y-m-d 23:59:59', strtotime("$firstday +1 month -1 day"));
  25. } elseif ($startTime == $endTime) {
  26. $month[] = date("Y-m-d H:i:s", mktime(0, 0, 0, date("m", $startTime), 01, date("Y", $startTime)));
  27. $month[] = date('Y-m-d H:i:s', $end);
  28. } else {
  29. $month[] = date("Y-m-d H:i:s", mktime(0, 0, 0, date("m", $startTime), 01, date("Y", $startTime)));
  30. $month[] = date("Y-m-d H:i:s", mktime(23, 59, 59, date("m", $startTime), date('d', strtotime("$month[0] +1 month -1 day")), date("Y", $startTime)));
  31. }
  32. $startTime += strtotime('+1 month', $startTime) - $startTime;
  33. $lastData[$i] = $month;
  34. $i++;
  35. }
  36. return $lastData;
  37. }
  38. ?>
解压密码: detechn或detechn.com

免责声明

本站所有资源出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。

本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户自行鉴别,做一个有主见和判断力的用户。

本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。

windows10轻松查保存的无线网络密码
« 上一篇 03-21
PHP生成MYSQL 数据字典
下一篇 » 03-23

发表评论