Ver Mensaje Individual
  #4 (permalink)  
Antiguo 24/12/2007, 09:14
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Contador regresivo

Hola zazoo:

No sé si has cogido la filosofía de los códigos que has copiado: Básicamente para hallar la diferencia de dos fechas se hace fecha1.getTime() - fecha2.getTime(), y lo que obtienes son los milisegundos de diferencia.

Luego se trata de hacer operaciones matemáticas para convertir esa cantidad en segundos, horas, días, meses y años... es bastante sencillo.

Código PHP:
var f1 = new Date(20081225105023);        // 2008/12/25 10:50:23
f1.setMilliseconds(562);
var 
f2 = new Date(20071224094513);        // 2007/12/24 09:45:13
f2.setMilliseconds(122);

f1 f1.getTime();
f2 f2.getTime();

document.write("Diferencia en milisegundos: "+(f1-f2)+" ms.<br/>");
document.write("Diferencia en dias: "+((f1-f2)/1000/60/60/24)+" días.<br/>");
var 
diasExactos = ((f1-f2)/1000/60/60/24).toFixed(0);
var 
horasRestantes = ((f1-f2)/1000/60/60) - diasExactos*24;
document.write("Diferencia en días y en horas: "+diasExactos+" días exactos más "+horasRestantes.toFixed(4)+" horas.<br/>"); 
Se trata de descomponerlos mediante la división, y coger las partes enteras. Seguiremos desarrollando los decimales.
El proceso es éste:
Intentamos conseguir años enteros -pasar de milisegundos a años- ( X/1000/60/60/24/365 ).
Cogemos la parte decimal de esos años (p), y conseguimos los meses: p*12
Cogemos la parte decimal de esos meses (q), y conseguimos los dias: q*30
Cogemos la parte decimal de esos dias (d), y conseguimos las horas: d*24
Cogemos la parte decimal de esas horas (h), y conseguimos los minutos: h*60
Cogemos la parte decimal de esos minutos (m), y conseguimos los segundos: m*60
Y por último cogemos la parte decimal de esos segundos (s) y conseguimos los milisegundos: s*1000


Bueno, no sé si me he acabo explicando bien o peor todavía....


Espero que lo hayas entendido y te puedas construir algo. No sé si habrá algo de ésto por las FAQ, casi seguro que sí


Un saludo
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.