(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
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";
?>
Los ejemplos anteriores mostrarán :
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