Edit in JSFiddle

var inicio = new Date("April 28, 2014 22:20:17"), //Fecha inicial
    fin = new Date("April 30, 2014 17:00:02"), //Fecha final
    difMiliSeg = fin.getTime() - inicio.getTime(), //Diferencia en milisegundos
    difSeg = difMiliSeg / 1000, //Diferencia en segundos
    difMin = 0, //Diferencia en minutos
    difHor = 0, //Diferencia en horas
    difDia = 0; //Diferencia en días
 
while (difSeg > 59){ //Si hay más de 59 segundos de diferencia
    difSeg -= 60; //Le resto 60 segundos
    difMin++; //Y aumento 1 minuto
}

while (difMin > 59){ //Si hay más de 60 minutos de diferencia
    difMin -= 60; //Le resto 60 minutos
    difHor++; //Y aumento 1 hora
}

while (difHor > 23){ //Si hay más de 23 horas de diferencia
    difHor -= 24; //Le resto 24 horas
    difDia++; //Y aumento 1 día
}

document.body.innerHTML = "Fecha inicial: " + inicio.toLocaleString();
document.body.innerHTML += "<br />Fecha final: " + fin.toLocaleString();
document.body.innerHTML += "<br />Días: " + difDia;
document.body.innerHTML += "<br />Horas: " + difHor;
document.body.innerHTML += "<br />Minutos: " + difMin;
document.body.innerHTML += "<br />Segundos: " + difSeg;