(PHP 5 >= 5.5.0, PHP 7, PHP 8)
DateTimeImmutable::sub — Sustrae una cantidad de días, meses, años, horas, minutos y segundos
$interval): DateTimeImmutable Devuelve un nuevo objeto DateTimeImmutable , con el objeto DateInterval especificado sustraído del objeto DateTimeImmutable especificado.
interval
Un objeto DateInterval
Retorna un nuevo objeto DateTimeImmutable con los datos modificados.
Si se intenta realizar una operación no soportada, como usar un objeto
DateInterval que represente especificaciones de tiempo
relativas como próximo día de la semana, se lanzará una
DateInvalidOperationException .
| Versión | Descripción |
|---|---|
| 8.3.0 | Ahora lanza una DateInvalidOperationException en lugar de una advertencia cuando se intenta realizar una operación no soportada. |
Ejemplo #1 Ejemplo de DateTimeImmutable::sub()
Estilo orientado a objetos
<?php
$date = new DateTimeImmutable('2000-01-20');
$newDate = $date->sub(new DateInterval('P10D'));
echo $newDate->format('Y-m-d') . "\n";
?>El ejemplo anterior mostrará:
2000年01月10日
Ejemplo #2 Más ejemplos de DateTimeImmutable::sub()
<?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";
?>El ejemplo anterior mostrará:
2000年01月19日 13:59:30 1992年08月15日 19:56:58
Ejemplo #3 Tenga cuidado al substraer meses
<?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";
?>El ejemplo anterior mostrará:
2001年03月30日 2001年03月02日