如何从数组中计算 HH:mm:ss 格式的时间

How to calculate time in HH:mm:ss format from array

我正在尝试根据以 HH:mm:ss 格式存储时间的数组来计算时间,我正在根据这段代码制作时间数组,

$result=[];
foreach ($playerTimes as $playerTime) {
    $playerStartTime = (isset($playerTime->start_time))? $playerTime->start_time: '00:00:00';
    $playerEndTime = (isset($playerTime->End_time))? $playerTime->End_time: '00:00:00';
    $result[] = \Carbon\Carbon::parse($playerStartTime)->diff(\Carbon\Carbon::parse($playerEndTime))->format('%H:%I:%S');

                          }

我得到这个数组

array:3 [0 => "08:44:14" 1 => "10:46:16" 2 => "12:48:18"]

加法后我想达到的结果是32:18:48

我试过了,但是我得到的结果是 08:18:48 这不是我需要的,

$result[] = \Carbon\Carbon::parse($playerStartTime)->diffInSeconds(\Carbon\Carbon::parse($playerEndTime));
dd(gmdate("H:i:s", array_sum($result)));

您 运行 遇到的问题是 H:i:s 格式不支持您在此尝试实现的目标,因为 H 永远不会大于 23,也不小于 0。

有两种可能的解决方案:您可以使用 Y-m-d H:i:s 来显示年、月和日的差异,或者您可以使用这些值将它们转换回小时,或计算小时秒差(所以秒差 / 60 / 60 = 小时),然后从那里开始工作。