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

问题描述 投票:0回答:1

我正在尝试从以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)));
php laravel php-carbon
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.