Hola, @russellhoff
Me refería al primer script, el segundo con la "solución" no lo revisé.
Primero, hacer esto:
Código PHP:
while (a < b) {
...
...
...
if (cualquier condicio) {
a--;
}
}
No tiene sentido, ya que nunca
a podrá ser mayor a
b para que se termine el ciclo. Tampoco se incremente
a. Y eso es la primera parte de la condición del primer script, lo hiciste con $anioAux.
Y segundo, $mesAux en el primer script debe ser mayor a $mesFin para que termine el while. Suponiendo que $mesFin es igual a 12, este código:
Código PHP:
if( $mesAux > 12 ){
$anioAux--;
$mesAux = 12;
}
Hace que cuando $mesAux sea igual a 13, vuelva a ser 12, por lo tanto nunca $mesAux será mayor que $mesFin.
En resumen, el problema ocurría sólo cuando $mesFin = 12.
Saludos
Sotelio