Laravel Carbon - 如何添加分钟

Laravel Carbon - How to add minutes

我有一个表格要求 4 小时,这是早上的开始和结束时间,下午也一样。

我正在使用 Carbon,但如果我输入 30 分钟,它会 return 为 0,它向下舍入。

我尝试使用 diffInHoursdiffInMinutes,但它总是以两种方式向下舍入。

这是我的代码示例:

$startTime1 = Carbon::createFromFormat('H:s', '09:00');
$startTime2 = Carbon::createFromFormat('H:s', '10:30');
$startTime3 = Carbon::createFromFormat('H:s', '14:00');
$startTime4 = Carbon::createFromFormat('H:s', '16:00');
$morningTime = $startTime2->diffInHours($startTime1);
$afternoonTime = $startTime4->diffInHours($startTime3);

$total = $morningTime + $afternoonTime;

$morningTime中它returns 1并且应该return 1,30。 在 $afternoonTime 中 returns 2 是正确的。

如果我使用 diffInMinutes,它将 60 放入 $morningTime,将 120 放入 $afternoonTime。早上时间又错了

我该如何解决?

谢谢

您正在以 Carbon 格式分配秒数 H:s,请使用 H:i:

$startTime1 = Carbon::createFromFormat('H:i', '10:30');

并且您可以使用format()方法来格式化时间差异

$morningTime = $startTime2->diff($startTime1)->format('%H:%I');

编辑:无法合并dateInterval实例,但您仍然可以使用时间戳:

$total_in_seconds = ($startTime2->timestamp - $startTime1->timestamp) + ($startTime4->timestamp - $startTime3->timestamp);

$total = Carbon::createFromTimestamp($total_in_seconds)->format('h:i');