TimeUtil.php 989 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. namespace app\utils;
  3. class TimeUtil
  4. {
  5. /**
  6. * 生成时间间隔数组
  7. */
  8. public static function generateTimeIntervals($startTime, $endTime, $intervalMinutes = 20): array
  9. {
  10. $intervals = [];
  11. $currentStart = strtotime($startTime);
  12. $endTimestamp = strtotime($endTime);
  13. while ($currentStart < $endTimestamp) {
  14. $currentEnd = $currentStart + ($intervalMinutes * 60);
  15. // 确保不超过结束时间
  16. if ($currentEnd > $endTimestamp) {
  17. $currentEnd = $endTimestamp;
  18. }
  19. $intervals[] = [
  20. 'start' => date("Y-m-d H:i:00", $currentStart),
  21. 'end' => date("Y-m-d H:i:00", $currentEnd)
  22. ];
  23. $currentStart = $currentEnd;
  24. // 如果已经到达结束时间,退出循环
  25. if ($currentStart >= $endTimestamp) {
  26. break;
  27. }
  28. }
  29. return $intervals;
  30. }
  31. }