Sumar fecha con función PHP
Sumar fecha con función PHP. En este articulo aprenderemos a sumar o restar fechas usando PHP en días, semanas, meses o años con 3 ejemplos completos.
Sumar y/o restar días, semanas, meses, años a una fecha en PHP
En ocasiones se requiere sumar o restar meses a una fecha estática o fecha extraída desde una base de datos y en este articulo daremos 3 ejemplos completos para lograr el objetivo.
3 formas para sumar fechas en PHP
- Primera forma: Usando strtotime
- Segunda forma: Formatos relativos
- Tercera forma: Función personalizada
Primera forma: Usando strtotime
La función predeterminada de PHP llamado strtotime es muy usando para formatear fechas en el lenguaje PHP. En el siguiente ejemplo veremos como sumar 1 mes y/o restar un mes.
$fecha_actual = date("d-m-Y");
//sumo 1 mes
echo date("d-m-Y",strtotime($fecha_actual."+ 1 month"));
//resto 1 mes
echo date("d-m-Y",strtotime($fecha_actual."- 1 month"));
Segunda forma: Formatos relativos
Esta segunda opción también se usa para sumar fechas en PHP y existe más opciones para esta segunda forma. a continuación, les dejare la página oficial para más información
$fecha =date("Y-m-d");
$fecha = date('Y-m-d', strtotime("last day of next month",strtotime($fecha)));
Tercera forma: Función personalizada
Las dos primeras opciones suelen presentar algunos inconvenientes a la hora de sumar fechas porque son genéricas. Ahora para darle una interfaz más precisas hemos creado una pequeña función para sumar fechas más exactas.
function addDate ($add,$startdate = false)
{
$date = !empty($startdate) ? $startdate : date('Y-m-d');
$newDate = strtotime ($add , strtotime ( $date ) ) ;
$newDate = date ( 'Y-m-d' , $newDate );
return $newDate;
}
¿Como usar la función personalizada para sumar fechas?
Para sumar fechas tenemos que llamar a la función addDate
que hemos creado y dentro de sus valores agregar la cantidad de años o meses que se desea sumar o restar y el segundo agregar la fecha inicial. Veamos un ejemplo:
echo addDate('40 year', '2022-10-14');
La salida en el navegador será:
2062-10-14
Hemos agregado 40 años a la fecha inicial y nos dará como resultado el año 2062
Primer ejemplo: Manejando días
Para manejar sumas de días o restas a una determinada fecha podemos usar (5 day), recuerda que en el ejemplo estamos sumando 5 días y puede ser personalizado por la cantidad de días que desee.
// Suma 5 días a la fecha 2022-06-15
echo addDate('5 day', '2022-06-15').'<br/>';
// Suma 5 días a la fecha actual
echo addDate('5 day').'<br/>';
Segundo ejemplo: Manejando semanas
A veces se requiere sumar o restar semanas a una fecha y por ende tenemos que usar (week
) antecediendo un numero positivo o negativo que hace énfasis a la semana.
// Resta una semana a la fecha '2022-06-15'
echo addDate('-1 week', '2022-06-15').'<br/>';
// Suma 3 semanas a la fecha '2022-06-15'
echo addDate('3 week', '2022-06-15').'<br/>';
Tercera forma: Manejando meses
Si tu aplicación web te pide sumar fechas por rango de meses, aquí te dejo este ejemplo y cómo podemos apreciar se está usando (month
) antecediendo un numero positivo o negativo que hace referencia a los meses.
// Suma 4 meses a la fecha '2022-06-15'
echo addDate('4 month', '2022-06-15').'<br/>';
Cuarta forma: Manejando años
Esta opción no suele ser muy usada, pero en algunos casos es necesario, para sumar años tenemos que agregar la palabra (year
) antecediendo un numero positivo o negativo según el caso, esos números simboliza la cantidad de años.
// Suma 2 años a la fecha '2014-06-15'
echo addDate('2 year', '2014-06-15').'<br/>';
Resumen y conclusiones
En este breve artículo hemos aprendido a sumar o restar: Días, Semanas, Meses, Años. Sin embargo, tenemos que usar sintaxis en inglés como ser: day, week, month, year.
Hemos aprendido a usar tres formas para sumar y restar fechas, por consiguiente, la tercera forma es la más recomendada.
Recuerda que las fechas iniciales pueden ser extraídas desde MySQL, usando un formulario con el método POST o Método GET.
Espero que esta breve explicación les ayude en sus proyectos web.