dar una fecha un tiempo atras – PHP

En muchas ocasiones tendremos la necesidad de mostrar ya sea por pantalla o simplemente almacenar en una variable una fecha en concreto, y la mayoría de las veces es una fecha pasada, como pueda ser una semana antes, un mes antes, o un año antes.

Para ello utilizaremos los métodos date() y mktime();

mktime() nos devuelve el timestamp de una fecha, si no le damos ningún parámetro nos devuelve la fecha actual; ojo fecha y hora UTC en España en concreto usamos UTC +1 podemos comprobar la fecha devuelta copiando el código que nos da, que sera algo al estilo: 1393605543 que es la fecha en la que estoy escribiendo esto; ingresando esos números en http://www.unixtimestamp.com/index.php

Por otro lado podemos formatearlo para verlo en días mes año, o como mas nos guste gracias a la función date(), a la que pasandole un string con el formato deseado lo tendremos todo solucionado, Y lo usaremos para la posición del año, m para la del mes, y d para el día. entre medias podemos poner / – espacio, lo que mas nos guste.

Para sacar una fecha en concreto en el mktime usaremos la función date() y le restaremos, o sumaremos, según necesitemos los días, meses, años e incluso minutos, horas o segundos por ejemplo:

  • date( «Y-m-d»,mktime(0, 0, 0, date(«m»)-1,date(«d»), date(«Y»))) -> nos da la fecha de hace un mes
  • date( «Y-m-d»,mktime(0, 0, 0, date(«m»),date(«d»)-1, date(«Y»))) -> nos da la fecha de ayer
  • date( «Y-m-d»,mktime(0, 0, 0, date(«m»),date(«d»), date(«Y»)-1)) -> nos da la fecha de hace un año
  • date( «Y-m-d»,mktime(0, 0, 0, date(«m»)+1,date(«d»), date(«Y»))) -> nos da la fecha de dentro de un mes
  • date( «Y-m-d»,mktime(0, 0, 0, date(«m»),date(«d»)+7, date(«Y»))) -> nos da la fecha de dentro de una semana
  • date( «Y-m-d»,mktime(0, 0, 0, date(«m»),date(«d»), date(«Y»)+1)) -> nos da la fecha de dentro de un año

Os dejo un par de ejemplos de su uso

<?php echo date( «Y-m-d»,mktime(0, 0, 0, date(«m»)-1,date(«d»), date(«Y»))); ?>

<input type=»date» name=»desde» id=»desde» value=»<?php echo date( «Y-m-d»,mktime(0, 0, 0, date(«m»)-1,date(«d»), date(«Y»))); ?>»/> al <input type=»date» name=»hasta» id=»hasta» value=»<?php echo date(‘Y-m-d’); ?>»/>