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.