Questa potrebbe essere la peggiore idea esistente, ma forse puoi semplicemente calcolare il tempo tra ora e la data di fine una volta, trovare il numero di intervalli che desideri e quindi chiamare setInterval
e decrementare manualmente il valore.
Alias:
var initialTime = new Date();
var endTime = /* Your Time when the thing is over */
var intervalId = setInterval(function()
{
// Every second, decrement the counter by 1 second.
// if counter is done, show end and then
clearInterval(intervalId);
}, 1000);