Я бы сделал это, собирая дату за секунду, поскольку всякий раз, когда компьютеры решали отслеживать время для нас где-то в 70-х (эпохе). Затем передайте ему второе значение и вычтите, оставив разницу.
Затем вам потребуется преобразовать ее обратно в формат даты, который я предполагаю:
(function(){
var dateOneSeconds = new Date().getTime() / 1000;
setTimeout(function(){
var dateTwoSeconds = new Date().getTime() / 1000;
var seconds = dateTwoSeconds - dateOneSeconds;
console.log(seconds);
var timeDifferenceInDate = new Date(seconds * 1000).toISOString().substr(11, 8);
console.log(timeDifferenceInDate);
}, 3000);
})();
ПРИМЕЧАНИЕ. Я использовал функцию тайм-аута - у вас уже будет две даты, которые не соответствуют всплывающим.
РЕДАКТИРОВАТЬ: Получив уведомление, дни не будут рассчитаны, возможно, вы можете использовать дату, чтобы рассчитать время в секундах, а затем использовать Math для создания вашего дисплея:
(function(){
var dateOneSeconds = new Date().getTime() / 1000;
setTimeout(function(){
var dateTwoSeconds = new Date().getTime() / 1000;
var seconds = dateTwoSeconds - dateOneSeconds;
console.log(seconds);
/* var timeDifferenceInDate = new Date(seconds * 1000).toISOString().substr(11, 8); */
seconds = Number(seconds);
var d = Math.floor(seconds / (3600*24));
var h = Math.floor(seconds % (3600*24) / 3600);
var m = Math.floor(seconds % 3600 / 60);
var s = Math.floor(seconds % 60);
timeDifferenceInDate = d + ':' + h + ':' + m + ':' + s;
console.log(timeDifferenceInDate);
}, 3000);
})();