Subtrair datas em PHP

1. Substrair dia, mês ou ano para a data atual

Para realizar a subtração de dia, mês ou ano a uma data atual, utiliza-se a função strtotime do PHP passando o parâmetro de dia, mês ou ano para a função conforme mostra nos exemplos abaixo:

// Exemplo data atual = 30/09/2019
$dataSubtraida1 = strtotime('-3 day');
// Formatando para data brasileira
echo date('d/m/Y', $dataSubtraida1); // 27/09/2019

$dataSubtraida2 = strtotime('-2 month');
// Formatando para data brasileira
echo date('d/m/Y', $dataSubtraida2); // 30/07/2019

$dataSubtraida3 = strtotime('-5 year');
// Formatando para data brasileira
echo date('d/m/Y', $dataSubtraida3); // 30/09/2014

Referências:
https://www.php.net/manual/pt_BR/function.date.php
https://www.php.net/manual/pt_BR/function.strtotime.php


2. Substrair dia, mês ou ano para uma data específica no formato brasileito d/m/Y

Para realizar a subtração de dia, mês ou ano a uma data específica, utiliza-se a função strtotime do PHP passando a data no formato inglês mais a quantidade de dias, meses ou anos que deseja substrair conforme os exemplos abaixo:

$dataEspecifica = '30/09/2019';
$dataEspecificaIngles = implode("-", array_reverse(explode("/", $dataEspecifica)));

/*** Exemplo 01 ***/
// Convertendo para formato inglês
$dataSubtraida = strtotime($dataEspecificaIngles . ' -3 day');
echo date('d/m/Y', $dataSubtraida); // 27/09/2019

/*** Exemplo 02 ***/
// Convertendo para formato inglês
$dataSubtraida = strtotime($dataEspecificaIngles . ' -3 day -2 month');
echo date('d/m/Y', $dataSubtraida); // 27/07/2019

/*** Exemplo 03 ***/
// Convertendo para formato inglês
$dataSubtraida = strtotime($dataEspecificaIngles . ' -3 day -2 month -5 year');
echo date('d/m/Y', $dataSubtraida); // 27/07/2014

Referências:
https://www.php.net/manual/pt_BR/function.date.php
https://www.php.net/manual/pt_BR/function.strtotime.php
http://php.net/manual/pt_BR/function.explode.php
http://php.net/manual/pt_BR/function.implode.php
http://php.net/manual/pt_BR/function.array-reverse.php