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