(PHP 5 >= 5.5.0, PHP 7, PHP 8)
DateTimeImmutable::sub — Sustrae una cantidad de días, meses, años, horas, minutos y segundos
Devuelve un nuevo objeto DateTimeImmutable, con el objeto DateInterval especificado sustraído del objeto DateTimeImmutable especificado.
interval
Un objeto DateInterval
Returns a new DateTimeImmutable object with the modified data.
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 resultado de los ejemplos sería:
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 resultado del ejemplo sería:
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 resultado del ejemplo sería:
2001-03-30 2001-03-02