Heim >Backend-Entwicklung >PHP-Tutorial >Wie füge ich in PHP zwei Datumsintervalle hinzu?

Wie füge ich in PHP zwei Datumsintervalle hinzu?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-03 06:02:301061Durchsuche

How to Add Two Date Intervals in PHP?

So fügen Sie zwei Datumsintervalle in PHP hinzu

PHP unterstützt keine Operatorüberladung. Bei Verwendung des Additionsoperators ( ) werden Objekte zunächst in Strings umgewandelt. DateInterval unterstützt jedoch keine String-Konvertierung.

<code class="php">interval 1: 03:05
interval 2: 05:00
Total interval : 08:05</code>

Erstellen Sie stattdessen ein neues DateTime-Objekt, verwenden Sie die Funktion add(), um die Intervalle hinzuzufügen und berechnen Sie die Differenz zum Referenzpunkt:

<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>

Alternativer Ansatz

Unter Berücksichtigung der internen Speicherstruktur von DateInterval ist es auch möglich, diese zu erweitern und die Berechnung manuell durchzuführen möglich:

<code class="php">class MyDateInterval extends DateInterval
{
    public static function fromDateInterval(DateInterval $from)
    {
        return new MyDateInterval($from->format('P%yY%dDT%hH%iM%sS'));
    }
                                  
    public function add(DateInterval $interval)
    {
        foreach (str_split('ymdhis') as $prop)
        {
            $this->$prop += $interval->$prop;
        }
    }
}

$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>

Hinweis:DateInterval-Erweiterungen sind mit PHP-Erweiterungen möglich.

Das obige ist der detaillierte Inhalt vonWie füge ich in PHP zwei Datumsintervalle hinzu?. 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