Para lo tuyo lo más seguro es que
Te esté dando un número negativo aplica absoluto:
Me equivoqué en mi código, cambia:
Código PHP:
Ver originalelse if(entreFechas("$year-06-15","$year-03-15",$fecha) || entreFechas("$year-09-01","$year-12-15",$fecha)){
Por
Código PHP:
Ver originalelse if(entreFechas("$year-01-06","$year-03-15",$fecha) || entreFechas("$year-09-01","$year-12-15",$fecha)){
Y en el calculo también me equivoqué:
Código PHP:
Ver original$total = $precio_base+$suplemento[$temporada][0]+$suplemento[$temporada][$dias];
Por
Código PHP:
Ver original$total = $precio_base+$suplemento[$temporada][0]+$suplemento[$temporada][$dias]*$dias;
Te complicas mucho, no es necesario pedir dos fechas, simplemente pides al cliente la fecha de ingreso y númerio de días de estadía, punto. así te ahorras hacer bucles y validaciones.
Por otro lado, deja por defecto temporada media, y luego verificas temporada alta o baja, no es necesario hacer 3 verificaciones, digo lo de temporada media para no lidiar con ese cambio de año:
Temporada MEDIA: 16 de Diciembre y 5 de Enero
Luego como explicas:
supl_tem_alta_1dia o supl_tem_alta_2dia o etc...
Entiendo pues que hay varianza pero no fórumla, por eso creé ese arreglo de suplementos.
Eso por ahora. Saludos.