我正在寻找一种方法来计算DateInterval
事件的平均总持续时间(形式)。我有DateInterval
对象的持续时间,但我需要将它们相加并计算它们的平均值。到目前为止,我看到的解决方案是通过将它们转换为秒来将不同的数量相加,但我需要以表格形式呈现最终DateTime
形式。
如何将平均持续时间表示为一个DateTime
值?
编辑:
按如下方式设置持续时间(其中$busyTime
和$freeTime
是 DateTime 对象):
$timetable[$siteID]->duration = $timetable[$siteID]->freeTime->diff($timetable[$siteID]->busyTime,true); //compare time, force to absolute (true)
然后我试图总结持续时间,如下所示:
$totalDuration += $timetable[$siteID]->duration;
对于这个,我得到 129 的总持续时间和我正在计算的项目数,这对我来说意味着它们都是 1 的值。如果是这样的话,这很好(可能每个 1 秒?)但我希望能够处理的不仅仅是几秒钟。我不确定这是否是这里发生的事情。
我也尝试了以下方法,但我没想到它会起作用:
$totalDuration += $timetable[$siteID]->duration->format("Y-m-d H:i:s");
对于最后一个,我得到 0。