(PHP 5 >= 5.5.0, PHP 7, PHP 8)
DateTimeImmutable::sub — Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos
Retorna um novo objeto DateTimeImmutable, com o objeto DateInterval especificado substraído do objeto DateTimeImmutable original.
interval
Um objeto DateInterval
Retorna um novo objeto DateTimeImmutable com os dados modificados.
Se uma operação não suportada for solicitada, por exemplo usando um
objeto DateInterval que representa especificação
relativa de tempo como next weekday
, uma
exceção DateInvalidOperationException é disparada.
Versão | Descrição |
---|---|
8.3.0 | Agora dispara uma exceção DateInvalidOperationException em vez de um aviso quando uma operação não suportada for solicitada. |
Exemplo #1 Exemplo da função 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";
?>
Os exemplos acima produzirão:
2000-01-10
Exemplo #2 Mais exemplos da função 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";
?>
O exemplo acima produzirá:
2000-01-19 13:59:30 1992-08-15 19:56:58
Exemplo #3 Cuidado ao subtrair 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";
?>
O exemplo acima produzirá:
2001-03-30 2001-03-02