Calcule el número de semanas, días y horas a partir de milisegundos

Hubo muchas preguntas similares, pero ninguna abordó este cálculo. Usando javascript i es fácil encontrar el número de milisegundos diff b / w 2 fechas para ex:

var mil = Math.floor(new Date("1/1/2012")  - new Date("1/7/2012"))

mil es asignado518400000

para obtener semanas lo haría a continuación

var weeks = mil / (1000*7*24*60*60);

en el ejemplo anterior se ajusta exactamente a1 semana. Para otras entradas posibles, me gustaría obtener una salida como ex:

n Weeks, y days , z hours

Así que lo hicemil % (1000*7*24*3600) para obtener el módulo y del resto calcular el número de días. pero sorprendentemente esta fue la respuesta que recibí de la consola1 weeks , 6 days parece que la semana calculada antes también se contabiliza por días nuevamente.

¿Cómo debo calcular esto correctamente?

Respuestas a la pregunta(4)

Su respuesta a la pregunta