So fügen Sie zwei Datumsbereiche in PHP hinzu
Das Hinzufügen von zwei Datumsbereichen zur Berechnung der gesamten Stunden- und Minutendauer ist bei vielen Fragen ein Problem für PHP-Programmierer. Versuchen wir zu verstehen, wie das geht.
Problembeschreibung
Der Benutzer möchte zwei Datumsintervalle auf folgende Weise hinzufügen, um die Gesamtdauer im Stunden- und Minutenformat zu erhalten:
<code class="php">$a = new DateTime('14:25'); $b = new DateTime('17:30'); $interval1 = $a->diff($b); echo "interval 1 : " . $interval1->format("%H:%I"); echo "<br />"; $c = new DateTime('08:00'); $d = new DateTime('13:00'); $interval2 = $c->diff($d); echo "interval 2 : " . $interval2->format("%H:%I"); echo "<br />"; echo "Total interval : " . ($interval1 + $interval2);</code>
Fragenantworten
PHP verfügt nicht über eine Operatorüberladung. Wenn also Objekte mit Objekten hinzugefügt werden, versucht PHP zunächst, diese in Zeichenfolgen umzuwandeln, DateInterval unterstützt diesen Vorgang jedoch nicht.
Um dieses Problem zu lösen, müssen wir eine andere Methode verwenden:
Codebeispiel
Hier ist ein Codebeispiel, das die obige Methode verwendet:
<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>
Ausgabe:
interval 1: 03:05 interval 2: 05:00 Total interval : 08:05
Alternativer Ansatz (benutzerdefiniertes DateInterval)
Wenn Sie tiefer gehen möchten, können Sie auch darüber nachdenken, Ihre eigene DateInterval-Erweiterung zu erstellen und die Additionsoperation neu zu definieren. Dies ist ein fortgeschrittenerer Ansatz, der ein tiefes Verständnis der PHP-Erweiterungsentwicklung erfordert.
Das obige ist der detaillierte Inhalt vonWie füge ich in PHP zwei Datumsintervalle hinzu, um die Gesamtzeitdauer zu ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!