Este artículo es útil para ver el funcionamiento combinado de "date" y "mktime" y muestra una función que devuelve la fecha en formato "dd/mm/yyyy" del último día pasado.
Si se quiere cambiar el formato de la fecha devuelta, habría que cambiar la siguiente línea por el formato deseado:
return(date("d/m/Y", $fecha));
Por ejemplo si quisiéramos 'mm-dd-aa':
return(date("m-d-y", $fecha));
La función recibe un día de la semana ($dia_semana), siendo 1 lunes, 2 martes, etc. hasta el domingo que puede ser 7 ó 0. Si recibe un valor mayor que 7 o menor que 0 devuelve error (-1).
Recibe también las semanas transcurridas de forma que si se le pasa un 1 buscará el último día de la semana pasado, un 2 buscará el día de la semana anterior y así sucesivamente. Debe recibir un número positivo que no sea 0 o devolverá error (-1)
|
//Copyright © McAnam.com
function fecha_pasada($dia_semana, $semanas_transcurridas){ $sale = 0; $cont = 0;
if (($dia_semana > 7) || ($dia_semana < 0) || ($semanas_transcurridas < 1)) return -1; if ($dia_semana == 7) $dia_semana=0; while (!$sale){ $fecha = mktime(0,0,0,date("m"), date("d") - $cont++, date("Y")); $dia = date("w", $fecha); if ($dia == $dia_semana){ if ($semanas_transcurridas > 1) $semanas_transcurridas--; else $sale = 1; } } return(date("d/m/Y", $fecha)); } //Ejemplos de utilización echo "Último lunes: ".fecha_pasada(1,1); echo " "; echo "Hace 2 domingos: ".fecha_pasada(7,2); ?> | |
No hay comentarios:
Publicar un comentario