Função date_sub

A função date_sub subtrai um intervalo de tempo de um objeto de data. O primeiro parâmetro aceita um objeto DateTime, o segundo - um objeto DateInterval.

Sintaxe

phpdate_sub(DateTime $object, DateInterval $interval);

Exemplo

Vamos subtrair 10 dias da data especificada:

php<?php
  $date = new DateTime('2025-06-15');
  $interval = new DateInterval('P10D');
  
  date_sub($date, $interval);
  echo $date->format('Y-m-d');
?>

Resultado da execução do código:

php'2025-06-05'

Exemplo

Vamos subtrair 1 ano e 2 meses da data:

php<?php
  $date = new DateTime('2025-03-20');
  $interval = new DateInterval('P1Y2M');
  
  date_sub($date, $interval);
  echo $date->format('Y-m-d');
?>

Resultado da execução do código:

php'2024-01-20'

Exemplo

A função date_create retorna um objeto DateTime. Podemos reescrever o código em um estilo misto, parcialmente OOP e parcialmente funcional:

php<?php
  $date = date_create('2025-03-20');
  $interval = new DateInterval('P1Y2M');
  
  date_sub($date, $interval);
  echo date_format($date, 'Y-m-d');
?>

Resultado da execução do código:

php'2024-01-20'

Veja também