Buf, pues no sé qué decirte, he metido los mismos parámetros que el javascript en
http://www.timeanddate.com/ por ejemplo y me salen también 25.011 días (
enlace). No sé muy bien a qué se puede deber, teniendo en cuenta que el 2008 sí lo cuenta como bisiesto...
Vamos a hacer un programita que cuente los días uno a uno con la misma configuración:
Código PHP:
Date.prototype.sumaUnDia = function() {
this.setTime( this.getTime() + (24*60*60*1000) );
}
Date.prototype.esElMismoDia = function( otraFecha ) {
return (this.getDate()===otraFecha.getDate()) &&
(this.getMonth()===otraFecha.getMonth()) &&
(this.getFullYear()===otraFecha.getFullYear());
}
var fechaInicio = new Date(1940, 1, 10);
var fechaFin = new Date(); //hoy
fechaFin.setMonth( fechaFin.getMonth()+1 ); // es hoy más un mes
document.write("Entre: <br/>"+fechaInicio+" y <br/>"+fechaFin+"<br/>");
// le voy a sumar un día a la fechaInicio hasta que sea el mismo día fechaInicio que fechaFin
var diasContados = 0;
while( fechaInicio.esElMismoDia( fechaFin ) === false ) {
fechaInicio.sumaUnDia();
diasContados++;
}
document.write("He contado "+diasContados+" días, y ahora las fechas son:<br/>"+fechaInicio+" y <br/>"+fechaFin );
Y la salida es:
Cita: Entre:
Sat Feb 10 00:00:00 UTC+0100 1940 y
Sat Aug 2 16:46:06 UTC+0200 2008
He contado 25011 días, y ahora las fechas son:
Sat Aug 2 01:00:00 UTC+0200 2008 y
Sat Aug 2 16:46:06 UTC+0200 2008
Así que bueno, no tengo ni la más remota idea de por qué contando poco a poco sale bien y contando a lo bestia mal, voy a revisar un poco el script de cálculo, debe andar algo mal por ahí, es lo más lógico.
A ver si lo sacamos.