Tengo el siguiente codigo:
Código HTML:
<script type="text/javascript">
function calcular_dias(){
fecha1 = document.altas.fechain.value;
fecha2 = document.altas.fechaout.value;
dia1 = fecha1.substring(0,2);
mes1 = fecha1.substring(3,5);
anyo1 = fecha1.substring(6,10);
var fechainicio = new Date(anyo1,mes1,dia1,12,0,0);
dia2 = fecha2.substring(0,2);
mes2 = fecha2.substring(3,5);
anyo2 = fecha2.substring(6,10);
var fechafin = new Date(anyo2,mes2,dia2,12,0,0);
MSxDia=24*60*60*1000; //milisegundos que tiene un dia
dias=(fechafin.getTime() - fechainicio.getTime()) / MSxDia;
dias = Math.floor(dias);
window.alert(dias);
}
</script>
Funcionar parece que funciona, hasta que te das cuenta de que cuenta mal el numero de dias de cada mes.
Por ejemplo, si metes como fecha de inicio 12/09/2007 y como fecha de fin 12/10/2007, da como resultado 31, cuando, como todos sabemos, septiembre tiene 30 dias.
Pero es mas, si meto como fecha de inicio 12/10/2007 y fin 12/11/2007, resulta dar 30 dias, cuando deberian ser 31. Es como si hubiera un desfase de un mes
¿Alguien sabe andestá el error?
Gracias de antemano
P.D.: antes de enviar el post, he probado a meter 01/01/2007 a 01/02/2007 y me da 28 dias. wtf ??