227 of 410 menu

Die Klasse DateInterval

Die Klasse DateInterval ermöglicht die Arbeit mit Zeitintervallen in PHP. Sie wird verwendet, um die Differenz zwischen zwei Datumsangaben zu speichern oder um ein Intervall in Methoden der Datumsarbeit festzulegen. Das Intervall wird in einem speziellen Format erstellt.

Syntax

DateInterval::__construct(string $duration)

Intervallformat

Das Format besteht aus dem Buchstaben P (Period) und den Elementen:

P{y}Y{m}M{d}DT{h}H{m}M{s}S{w}W

In diesem Format: Y - Jahre, M - Monate, D - Tage, T - Zeit-Trennzeichen, H - Stunden, M - Minuten, S - Sekunden, W - Wochen.

Vor diesen Buchstaben muss der entsprechende Wert geschrieben werden. Zum Beispiel bedeutet 3Y drei Jahre, und 5Y2M bedeutet 5 Jahre und 2 Monate.

Nach der Erstellung enthält das Objekt DateInterval die folgenden Eigenschaften:

<?php $interval->y // Jahre $interval->m // Monate $interval->d // Tage $interval->h // Stunden $interval->i // Minuten $interval->s // Sekunden $interval->f // Mikrosekunden $interval->invert // 1, wenn das Intervall negativ ist $interval->days // Anzahl der Tage (wenn es mit diff() erstellt wurde) ?>

Sehen wir uns die Funktionsweise des Intervalls an Beispielen an:

Beispiel

Erstellen wir ein Intervall von 1 Stunde, 45 Minuten und 30 Sekunden:

<?php $interval = new DateInterval('PT1H45M30S'); var_dump($interval); ?>

Ergebnis der Codeausführung:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 0 'h' => 1 'i' => 45 's' => 30 )

Beispiel

Erstellen wir ein Intervall von 3 Wochen und 2 Tagen:

<?php $interval = new DateInterval('P3W2D'); var_dump($interval); ?>

Ergebnis der Codeausführung:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 23 'h' => 0 'i' => 0 's' => 0 )

Beispiel

Erstellen wir ein Intervall von 5 Monaten, 10 Tagen und 6 Stunden:

<?php $interval = new DateInterval('P5M10DT6H'); var_dump($interval); ?>

Ergebnis der Codeausführung:

DateInterval Object ( 'y' => 0 'm' => 5 'd' => 10 'h' => 6 'i' => 0 's' => 0 )

Beispiel

Erstellen wir ein Intervall von 2 Jahren und 15 Minuten:

<?php $interval = new DateInterval('P2YT15M'); var_dump($interval); ?>

Ergebnis der Codeausführung:

DateInterval Object ( 'y' => 2 'm' => 0 'd' => 0 'h' => 0 'i' => 15 's' => 0 )

Beispiel

Erstellen wir ein Intervall von 1 Tag, 12 Stunden und 30 Sekunden:

<?php $interval = new DateInterval('P1DT12H30S'); var_dump($interval); ?>

Ergebnis der Codeausführung:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 1 'h' => 12 'i' => 0 's' => 30 )

Beispiel

Erstellen wir ein negatives Intervall von 1 Jahr und 3 Monaten (Intervall rückwärts):

<?php $interval = new DateInterval('P1Y3M'); $interval->invert = 1; var_dump($interval); ?>

Ergebnis der Codeausführung:

DateInterval Object ( 'y' => 1 'm' => 3 'd' => 0 'h' => 0 'i' => 0 's' => 0 'invert' => 1 )

Beispiel

Erstellen wir ein negatives Intervall von 2 Stunden, 30 Minuten (Intervall rückwärts):

<?php $interval = new DateInterval('PT2H30M'); $interval->invert = 1; var_dump($interval); ?>

Ergebnis der Codeausführung:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 0 'h' => 2 'i' => 30 's' => 0 'invert' => 1 )

Beispiel

Fügen wir ein Intervall zum aktuellen Datum hinzu:

<?php $date = new DateTime('2023-01-01'); $interval = new DateInterval('P10D'); $date->add($interval); echo $date->format('Y-m-d'); ?>

Ergebnis der Codeausführung:

'2023-01-11'

Beispiel

Berechnen wir die Differenz zwischen zwei Datumsangaben:

<?php $date1 = new DateTime('2023-01-01'); $date2 = new DateTime('2023-02-15'); $interval = $date1->diff($date2); echo $interval->format('%m Monate %d Tage'); ?>

Ergebnis der Codeausführung:

'1 Monate 14 Tage'

Siehe auch

  • die Klasse DateTime,
    die ein Datum und eine Uhrzeit repräsentiert
  • die Klasse DateTimeZone,
    die eine Zeitzone repräsentiert
Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen