在PHP中将两个计算时间相加

在PHP中将两个计算时间相加,php,time,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

我需要一些帮助,我之前已经用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个小时

如果这是可能的话?

您可以使用对象执行此操作。我们使用当前时间创建两个相同的对象,然后使用该方法将每个时间变量添加到其中一个。然后,我们可以获取两个对象之间的差异(创建一个对象),并以与输入相同的方式输出该差异的值:

$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

您应该以分钟为单位存储时间,而不是以格式化字符串的形式存储,并在输出时格式化。然后你只需要马上把它们加起来。现在,您需要将字符串“18小时13分钟”解析为分钟,然后才能将它们全部相加。函数
strotime()
将日期/时间字符串作为参数,并将其转换为unix时间戳(自1970-01-01以来的秒数),这并不是您在这里要查找的。顺便说一句,如果您在示例中总结时间,它将是22小时,而不是20小时。这是否回答了您的问题?如果没有,你能提供更多的信息来帮助回答这个问题吗?否则,请考虑标记接受的答案(在上/下投票箭头下的复选标记)。看见