gpt4 book ai didi

PHP 使用 DatePeriod 创建带休息时间的时间段

转载 作者:可可西里 更新时间:2023-10-31 22:12:00 24 4
gpt4 key购买 nike

我想创建有开始时间、结束时间和休息时间的时间段。

public function getServiceScheduleSlots($duration,$break, $stTime,$enTime)
{
$start = new DateTime($stTime);
$end = new DateTime($enTime);
$interval = new DateInterval("PT" . $duration. "M");
$period = new DatePeriod($start, $duration, $end);

foreach ($period as $dt) {
$periods[] = $dt->format('H:iA');
}
return $periods;
}

例如,
我的服务开始时间10:00 AM,结束时间12:00 PM
条件每次服务时间30分钟15分钟休息。

上面的方法返回类似,

  • 上午 10:00 - 上午 10:30
  • 上午 10:30 - 上午 11:00
  • 上午 11:00 - 上午 11:30
  • 上午 11:30 - 中午 12:00

预期结果为,

  • 上午 10:00 - 上午 10:30
  • 上午 10:45 - 上午 11:15
  • 上午 11:30 - 中午 12:00

我想在每个时段开始时添加休息时间。

提前致谢。

最佳答案

这个怎么样....

function getServiceScheduleSlots($duration,$break, $stTime,$enTime)
{
$start = new DateTime($stTime);
$end = new DateTime($enTime);
$interval = new DateInterval("PT" . $duration. "M");
$breakInterval = new DateInterval("PT" . $break. "M");

for ($intStart = $start;
$intStart < $end;
$intStart->add($interval)->add($breakInterval)) {

$endPeriod = clone $intStart;
$endPeriod->add($interval);
if ($endPeriod > $end) {
$endPeriod=$end;
}
$periods[] = $intStart->format('H:iA') .
' - ' .
$endPeriod->format('H:iA');
}

return $periods;
}

关于PHP 使用 DatePeriod 创建带休息时间的时间段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20606770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com