PHP 中相加两个时间间隔
在 PHP 中,想要计算两个时间间隔的总时长并以小时和分钟格式显示,需要添加这两个间隔。然而,PHP 的 DateInterval 类没有重载 运算符,因此无法直接将它们相加。
要实现此目的,需要创建一个新的 DateTime 对象,使用 add() 函数添加两个间隔,然后显示与参考点的时差:
<code class="php">$e = new DateTime('00:00'); $f = clone $e; $e->add($interval1); $e->add($interval2); echo "Total interval: ", $f->diff($e)->format("%H:%I"), "\n";</code>
完整的代码示例:
<code class="php">$a = new DateTime('14:25'); $b = new DateTime('17:30'); $interval1 = $a->diff($b); echo "interval 1: ", $interval1->format("%H:%I"), "\n"; $c = new DateTime('08:00'); $d = new DateTime('13:00'); $interval2 = $c->diff($d); echo "interval 2: ", $interval2->format("%H:%I"), "\n"; $e = new DateTime('00:00'); $f = clone $e; $e->add($interval1); $e->add($interval2); echo "Total interval: ", $f->diff($e)->format("%H:%I"), "\n";</code>
另一个方法是扩展 DateInterval 类并自定义 add() 函数,以自己计算总时长:
<code class="php">class MyDateInterval extends DateInterval { //... } $a = new DateTime('14:25'); $b = new DateTime('17:30'); $interval1 = $a->diff($b); echo "interval 1: ", $interval1->format("%H:%I"), "\n"; $c = new DateTime('08:00'); $d = new DateTime('13:00'); $interval2 = $c->diff($d); echo "interval 2: ", $interval2->format("%H:%I"), "\n"; $e = MyDateInterval::fromDateInterval($interval1); $e->add($interval2); echo "Total interval: ", $e->format("%H:%I"), "\n";</code>
这只是通过自定义类实现自定义时间间隔的一种方法。
以上是如何在 PHP 中添加两个时间间隔?的详细内容。更多信息请关注PHP中文网其他相关文章!