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

Susan Sarandon
Freigeben: 2024-11-04 00:38:30
Original
557 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Ausgabe:

interval 1: 03:05
interval 2: 05:00
Total interval : 08:05
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!