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中文網其他相關文章!