CakeFest 2024: The Official CakePHP Conference

DateTimeImmutable::sub

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::sub Subtrahiert eine Anzahl von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden

Beschreibung

public DateTimeImmutable::sub(DateInterval $interval): DateTimeImmutable

Gibt ein neues DateTimeImmutable-Objekt zurück, bei dem das angegebene DateInterval-Objekt vom angegebenen DateTimeImmutable-Objekt subtrahiert wurde.

Parameter-Liste

interval

Ein DateInterval-Objekt

Rückgabewerte

Gibt ein neues DateTimeImmutable-Objekt mit den geänderten Daten zurück.

Fehler/Exceptions

Wenn versucht wird, eine nicht unterstützte Operation durchzuführen, z. B. mit einem DateInterval-Objekt, das relative Zeitangaben wie next weekday enthält, wird eine DateInvalidOperationException geworfen.

Changelog

Version Beschreibung
8.3.0 Wirft nun eine DateInvalidOperationException, statt eine Warnung auszugeben, wenn versucht wird, eine nicht unterstützte Operation durchzuführen.

Beispiele

Beispiel #1 DateTimeImmutable::sub()-Beispiel

Objektorientierter Stil

<?php
$date
= new DateTimeImmutable('2000-01-20');
$newDate = $date->sub(new DateInterval('P10D'));
echo
$newDate->format('Y-m-d') . "\n";
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

2000-01-10

Beispiel #2 Weitere DateTimeImmutable::sub()-Beispiele

<?php
$date
= new DateTimeImmutable('2000-01-20');
$newDate = $date->sub(new DateInterval('PT10H30S'));
echo
$newDate->format('Y-m-d H:i:s') . "\n";

$date = new DateTimeImmutable('2000-01-20');
$newDate = $date->sub(new DateInterval('P7Y5M4DT4H3M2S'));
echo
$newDate->format('Y-m-d H:i:s') . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2000-01-19 13:59:30
1992-08-15 19:56:58

Beispiel #3 Vorsicht beim Subtrahieren von Monaten

<?php
$date
= new DateTimeImmutable('2001-04-30');
$interval = new DateInterval('P1M');

$newDate1 = $date->sub($interval);
echo
$newDate1->format('Y-m-d') . "\n";

$newDate2 = $newDate1->sub($interval);
echo
$newDate2->format('Y-m-d') . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2001-03-30
2001-03-02

Siehe auch

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top