Obtener una fecha restando o sumando dias a la fecha actual con PHP.

El título del post no se si sea de lo mas claro pero les comento. Ayer tuve la necesidad de obtener una fecha restando cierta cantidad de dias a la fecha actual. Investigando en google llegue a varias funciones que me daban el numero de dias comprendidos entre 2 fechas pero esa no era mi necesidad hasta que verificando el manual de PHP (del cual tengo la versión en formato .chm) me encuentro con la función strtotime cuya descripción es la siguiente:

strtotime: Sirve para procesar cualquier descripción textual de fecha/hora en Inglés convirtiéndola en una timestamp de UNIX.

Sintaxis:

int strtotime ( string hora [, int ahora]);

Esta función nos permite obtener el timestamp mediante una cadena de texto, y ademas nos permite realizar ciertos calculos como sumar y restar dias, semanas, meses, horas etc…

Bien pues volviendo al tema principal, y una ves revisada dicha función, cree otra que reciba como parametro el numero de dias (Por ejemplo: +3 o -3), la compare con la fecha actual y me devuelva la fecha resultante en el formato Y-m-d.

La función es la siguiente:

  1. function calcularFecha($dias){
  2.  
  3. $calculo = strtotime("$dias days");
  4. return date("Y-m-d", $calculo);
  5. }

Un ejemplo de su uso es el siguiente:

  1. //Imprimir la fecha actual para verificar
  2.  
  3. echo date("Y-m-d");
  4. echo "<br>";
  5.  
  6. //Llamo a la funcion para calcular cual es la fecha 30 dias antes de la actual.
  7.  
  8. echo calcularFecha(-30);

Para calcular en base a una fecha distinta a la actual sería de la siguiente forma:

  1. $fechaComparacion = strtotime("14 May 1983");
  2. $calculo= strtotime("-15 days", $fechaComparacion); //Le restamos 15 dias
  3. echo date("Y-m-d", $calculo);

Mas info de la función strtotime


Leer más de:  Desarrollo Web, General, Internet
Fecha de publicación:  abril 25, 2007

Notas Relacionadas

dmedina

Fundador de WebAdictos.com.mx / Ingeniero en Sistemas / Desarrollador Web / Blogger / Estudiante de MGTI / apasionado por la tecnología y sobre todo adicto al internet. Puedes seguirme en Twitter @dmedina

#WEB  #TWITTER     Más Entradas de dmedina ➝
  • Wil

    Gacias por el truco, funciona a la perfeccion

  • pABLO

    Gracias por la función…funciona muy bien.

    Saludos.
    P4blo.-

  • helder

    Un 10!

  • marco polo

    excelente maestro, despues de dos dias de busqueda al fin econtre la solucion.

    muchas gracias

  • Luigi-panama

    AAAAAaaaassssshhhhaaaalaa man este simple codigo esta tan podereso para manejar fechas que aun no lo puedo creeeeeerrr. Un BILLON de gracias por publicar algo asi tan brutal man gracias.

  • Marcel

    Exelente aporte, Gracias!

  • http://j Ivana

    Graciaaaaaaaas!!!Dias buscando asi de simpleee!! se me soluciono todo mi trabajo final sobre un sistema de turnos on linda

  • de argentina

    Gracias!!!
    Me re ayudó!

  • http://www.johannsalas.wordpress.com Johann

    Muchas gracias por la info !

  • De Mexico

    Excelente, tantos scripts que busque tan complicados hasta antes de llegar a este tutorial. Gracias por el aporte.