Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/09/2007, 01:39
jemarquesini
 
Fecha de Ingreso: noviembre-2006
Mensajes: 102
Antigüedad: 18 años, 3 meses
Puntos: 1
Error al calcular dias entre 2 fechas

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 ??