Sumar / restar dias, semanas, meses o años a una fecha en PHP

Stay hungry, stay foolish

Steve Jobs

Creando algunos reportes en PHP surgió la necesidad de sumar o restar días y meses a una fecha en PHP investigando encontré la función strtotime de PHP que convierte una fecha u hora a una fecha unix y desde donde se le pueden sumar o restar dias, semanas, etc.

Función strtotime

La funcion strtotime recibe 2 parametros el primero llamado time es una cadena de fecha u hora, podemos utilizar un formato de fecha relativa y el segundo argumento es now hace referencia a una marca de tiempo que se usa como base para el cálculo de las fechas relativas.

Veamos unos ejemplos


$fecha ='2013-12-16';

$fecha10diasdespues = date('Y-m-d',strtotime('+10 days', strtotime($fecha)));
$fecha5mesesantes = date('Y-m-d',strtotime('-20 months', strtotime($fecha)));
$fecha3semanasdespues = date('Y-m-d',strtotime('+3 weeks', strtotime($fecha)));

echo $fecha10diasdespues;    //2013-12-26
echo $fecha20mesesantes;     //2012-04-16
echo $fecha3semanasdespues;  //2014-01-06