Os dejo el código que quiero modificar:
Codigo PHP:
Cita: if($type == 'Monthly') {
//Variables que se recogen:
//$Type: Tipo de repeticion(Diaria, Semanal, mensual o anual)
//avg_monthcount: El asunto principal por el que falla, los dias del mes. Coge 30
//$Interval: Intervalo en dias final.(Dia 3 + 30 dias)
//$Starting: Fecha inicio de intervalo
// $limiting: Fecha fin del intervalo
//$Repeatinteval: La variable que devuelve la fecha una vez sumados los dias
//Errores: 1) No se utiliza la frecuencia(cada 2 meses, cada 2 años), que se recoge en una variable $Frequency. En su lugar está la variable $count, que agregara al calendario, en funcion del tipo, una repeticion mensual, anual, sin tener en cuenta la frecuencia(cada 2 meses, cada 2 años, etc)
//2) Se toma como numero de dias del mes 30, en $avg_monthcount
$count = 0;
$avg_monthcount = 30;
while(true) {
++$count;
$interval = $count * $avg_monthcount;
if(self::mktime(self::nexttime($starting, "+$interval days")) > $limiting) {
break;
}
$repeatInterval[] = $interval;
}
} else if($type == 'Yearly') {
//fallaria en años bisiestos
$count = 0;
$avg_monthcount = 365;
while(true) {
++$count;
$interval = $count * $avg_monthcount;
if(self::mktime(self::nexttime($starting, "+$interval days")) > $limiting) {
break;
}
$repeatInterval[] = $interval;
}
}
return $repeatInterval;
Como veis fundamentalmente, sobre unas fechas de inicio y fin, crea fechas, con los parametros dados(frecuencia, tipo de repeticion), pero toma como base 30 dias por mes, y no tiene en cuenta la frecuencia de repeticion.