Example #1
0
 function get_fechas_eventos_x_intervalo($anio, $mes, $dia)
 {
     $intervalo = array();
     //Acumulado de fechas
     //Revision de intervalo de fechas
     $sql = "SELECT          cal_fecha_inicio, cal_fecha_fin\nFROM            calendario\nWHERE           (DATE_FORMAT(cal_fecha_inicio,'%Y%m')='" . $anio . $mes . "'\nOR          DATE_FORMAT(cal_fecha_fin,'%Y%m')='" . $anio . $mes . "')\nAND         cal_fecha_fin IS NOT NULL\nAND         cal_eliminado IS NULL";
     //        debug( $sql );
     $evita_recursion = 0;
     $date_time = new Date_time();
     foreach ($this->get_registros($sql) as $registro) {
         $fecha_inicio = $registro["cal_fecha_inicio"];
         $fecha_fin = $registro["cal_fecha_fin"];
         $fecha_incremental = $fecha_inicio;
         if (substr($fecha_inicio, 0, 7) == $anio . "-" . $mes) {
             //esto es porque en el ciclo de abajo siempre es incremental y no toma el primer valor
             $intervalo[] = $fecha_inicio;
         }
         while ($fecha_incremental != $fecha_fin) {
             $fecha_incremental = $date_time->sumar_dias_fecha($fecha_incremental, 1);
             if (substr($fecha_incremental, 0, 7) == $anio . "-" . $mes) {
                 if (!in_array($fecha_incremental, $intervalo)) {
                     //Para que no duplique fechas
                     $intervalo[] = $fecha_incremental;
                 }
             }
             if ($evita_recursion > 365) {
                 break;
             } else {
                 $evita_recursion++;
             }
         }
     }
     return $intervalo;
 }