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
Freigeben: 2024-11-03 06:02:30
Original
1039 Leute haben es durchsucht

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

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

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

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!

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