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’); ?>»/>
Apasionado de la montaña, del SEO y la programación a partes iguales, llevo más de 20 años trabajando en distintos sectores, pero siempre enfocado a la web, si quieres saber más de mí, sigue el enlace.