Hola a todos:
Hoy os traigo una función que aunque sencilla puede ser muy útil cuando trabajamos con fechas en PHP.
En ocasiones necesitamos sumar o restar días a la fecha actual o a una fecha dada.
Vamos a crear una pequeña función que nos permite sumar o restar días, semanas, meses o años a una fecha:
<?php function sumaFechas ($suma,$fechaInicial = false) { $fecha = !empty($fechaInicial) ? $fechaInicial : date('Y-m-d'); $nuevaFecha = strtotime ($suma , strtotime ( $fecha ) ) ; $nuevaFecha = date ( 'Y-m-d' , $nuevaFecha ); return $nuevaFecha; } ?>
La función recibe dos parámetros, el primero es la cantidad de días, semanas, meses o años que vamos a sumar o restar y el segundo es la fecha a la que se los vamos a sumar.
Si no se pasa el parámetro fechaInicial la función tomará la fecha actual.
Para sumar 3 días al 15 de junio del 2014 llamamos a la función de esta manera:
echo sumaFechas('3 day', '2014-06-15');
Para sumar 3 semanas:
echo sumaFechas('3 week', '2014-06-15');
Recordad que también podemos restar poniendo el número en negativo:
echo sumaFechas('-4 month', '2014-06-15');
Veamos un ejemplo completo con varias posibilidades que podéis probar y que cubren todas las posibilidades que podéis necesitar:
<?php function sumaFechas ($suma,$fechaInicial = false) { $fecha = !empty($fechaInicial) ? $fechaInicial : date('Y-m-d'); $nuevaFecha = strtotime ($suma , strtotime ( $fecha ) ) ; $nuevaFecha = date ( 'Y-m-d' , $nuevaFecha ); return $nuevaFecha; } // Suma 5 días a la fecha 2014-06-15 echo sumaFechas('5 day', '2014-06-15').'<br/>'; // Suma 5 días a la fecha actual echo sumaFechas('5 day').'<br/>'; // Resta una semana a la fecha '2014-06-15' echo sumaFechas('-1 week', '2014-06-15').'<br/>'; // Suma 3 semanas a la fecha '2014-06-15' echo sumaFechas('3 week', '2014-06-15').'<br/>'; // Suma 4 meses a la fecha '2014-06-15' echo sumaFechas('4 month', '2014-06-15').'<br/>'; // Suma 2 años a la fecha '2014-06-15' echo sumaFechas('2 year', '2014-06-15').'<br/>'; ?>
Y eso es todo por hoy, espero que os sirva de ayuda. 😉
No dudéis en dejar en los comentario cualquier duda que os surja.