Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich in PHP zwei Datumsintervalle hinzu, um die Gesamtzeitdauer zu ermitteln?

Wie füge ich in PHP zwei Datumsintervalle hinzu, um die Gesamtzeitdauer zu ermitteln?

Susan Sarandon
Susan SarandonOriginal
2024-11-04 00:38:30559Durchsuche

How to Add Two Date Intervals in PHP to Find Total Time Duration?

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:

  1. Erstellen Sie ein neues DateTime-Objekt: Erstellen Sie ein neues DateTime-Objekt, das als Referenzpunkt verwendet wird .
  2. Verwenden Sie die Add-Funktion, um ein Intervall hinzuzufügen: Verwenden Sie die Add-Funktion, um zwei Intervalle zu einem neuen DateTime-Objekt hinzuzufügen.
  3. Den Unterschied zum Referenzpunkt anzeigen: Zeigen Sie abschließend den Unterschied zwischen dem neuen DateTime-Objekt und dem Referenzpunkt, um die Gesamtdauer zu erhalten.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn