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(2008, 12, 25, 10, 50, 23); // 2008/12/25 10:50:23
f1.setMilliseconds(562);
var f2 = new Date(2007, 12, 24, 09, 45, 13); // 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