¿Por qué obtengo valores negativos o de NaN? ¿Mis cálculos son incorrectos o hay una diferencia entre Python time.time () y JavaScript?

Su código js parece devolver los valores correctos (al menos para el ejemplo 1429378522.32 que nos dio). Su problema podría ser mezclar las marcas de tiempo del servidor con las marcas de tiempo del cliente. En su entorno de desarrollo, el cliente / servidor está en la misma máquina y tiene la misma zona horaria. Pero en escenarios de la vida real, el cliente puede tener cualquier zona horaria, por lo que será un problema.

Otra razón por la que puede tener este problema es que es posible que no tenga en cuenta las diferencias de tiempo entre la generación de la marca de tiempo en el servidor y su uso en el cliente. Su código en la página web no se ejecuta al instante. Tomará algún tiempo que todo su código de Python termine de ejecutarse, el navegador tardará un tiempo en recibir la respuesta del servidor http, su código js tardará un tiempo en comenzar a ejecutarse y luego tomará un poco más tiempo hasta llegar al código js que usa el tiempo generado por el código python.

Una solución a ambos problemas: generar la hora actual en el lado del servidor y asumir esa hora en el lado del cliente (en lugar de Date.now ()).

No estoy completamente seguro de lo que está mal aquí.
Copié y pegué su código, descomenté la declaración de tiempo y obtuve un resultado como este:
Objeto {día: “6 días”, horas: “21 horas”, minutos: “52 minutos”, segundos: “4 segundos”}