在PHP中将两个计算时间加在一起

时间:2019-04-29 07:34:37

标签: php time

我需要一些帮助,我以前已经用PHP计算了每周时间表的时间,而不是我的问题;可以将所有这些加在一起吗?

我尝试使用以下功能,但不确定此功能是否有效。目的是每周计算这种格式总共花费了多少时间。

$time = "18 hours 13 minutes";
$time2 = "47 minutes";
$time3 = "1 hour";
$time4 = "1 hour";
$time5 = "1 hour";
$time6 = "";
$time7 = "";

$max_date=abs(strtotime($time) + strtotime($time2) + strtotime($time3) + strtotime($time4) + strtotime($time5) + strtotime($time6) + strtotime($time7));

因此,总共应该显示22个小时。

那有可能吗?

1 个答案:

答案 0 :(得分:2)

您可以使用DateTime对象来做到这一点。我们使用当前时间创建两个相同的对象,然后使用modify方法将每个时间变量添加到其中一个。然后,我们可以获取两个对象之间的差异(创建一个DateInterval对象),并在与输入相同的format中输出该值:

$start = new DateTime();
$end = clone($start);

if (!empty($time)) $end->modify("+$time");
if (!empty($time2)) $end->modify("+$time2");
if (!empty($time3)) $end->modify("+$time3");
if (!empty($time4)) $end->modify("+$time4");
if (!empty($time5)) $end->modify("+$time5");
if (!empty($time6)) $end->modify("+$time6");
if (!empty($time7)) $end->modify("+$time7");

$total = $end->diff($start);
echo $total->format('%h hours %i minutes');

输出:

22 hours 0 minutes

Demo on 3v4l.org