viernes, 16 de abril de 2010

Últimos "n" días en php

En algunos reportes muchas veces en necesario controlar la actividad de la base de datos en un rango de tiempo, en este caso, obtenemos con php, las últimas "n" fechas.

// Especifica la cantidad de días
$cantidad_dias = 115;

echo "Ultimos ".$cantidad_dias." dia(s) ";

// Retorna el último día de un mes
function getUltimoDiaDelMes( $anio, $mes ){
return date('d',strtotime('-1 second',strtotime('+1 month',strtotime(date($mes).'/01/'.$anio.' 00:00:00'))));;
}

// Retona un array con las "n" últimas fechas
function getUltimosDias( $cantidad ){
$fechas_ar = array();
$anio = date("Y");
$mes = date("m");
$dia = date("d");
while( $cantidad > 0){
$fechas_ar[] = $anio."-".$mes."-".$dia;
$dia --;
if($dia == 0){
$mes --;
if($mes == 0){
$mes = '12';
$anio --;
}
$dia = getUltimoDiaDelMes($anio, $mes);
}
$cantidad --;
}
return $fechas_ar;
}


// Ejemplo de funcionamiento
$fechas_ar = getUltimosDias( $cantidad_dias );
foreach ($fechas_ar as &$fecha){
echo $fecha."
";
}

No hay comentarios: