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; }