请用php计算两个时间段2023-04-22 16:43:00到2023-04-23 13:39:20之间的耗费时间,精确到小时(保留两位小数),满足一天的耗时计算只计算上午8:00到11:30和下午12:30到5:00的时间差
时间: 2024-04-11 12:33:35 浏览: 100
可以使用PHP的DateTime类和相关方法来计算两个时间段之间的耗费时间,并满足只计算上午8:00到11:30和下午12:30到5:00的时间差。下面是一个示例代码:
```php
$startTime = new DateTime('2023-04-22 16:43:00');
$endTime = new DateTime('2023-04-23 13:39:20');
// 将开始时间调整到第二天的上午8:00
if ($startTime->format('H:i') < '08:00') {
$startTime->setTime(8, 0, 0);
$startTime->modify('+1 day');
} elseif ($startTime->format('H:i') > '11:30') {
$startTime->setTime(12, 30, 0);
}
// 将结束时间调整到当天的下午5:00
if ($endTime->format('H:i') < '12:30') {
$endTime->setTime(11, 30, 0);
} elseif ($endTime->format('H:i') > '17:00') {
$endTime->setTime(17, 0, 0);
}
$totalInterval = $endTime->diff($startTime);
$hours = $totalInterval->h + $totalInterval->i / 60;
echo number_format($hours, 2);
```
这段代码首先创建了两个DateTime对象,表示开始时间和结束时间。接着,根据开始时间和结束时间的具体情况,通过一些条件判断和调整,将开始时间调整到第二天的上午8:00,将结束时间调整到当天的下午5:00。
然后,使用`diff()`方法计算时间间隔,并将小时数和分钟数相加,得到总的耗费时间(单位:小时)。最后,将结果保留两位小数打印出来。
阅读全文