Моя идея заключается в том, что вы будете хранить время в локальном хранилище для самого первого экземпляра. И каждый раз, когда вам нужно выполнить разницу с текущим временем и прошедшим временем, которое хранится.
ngOnInit() {
if (!local storage.getItem("pastTime") {
startTime = getMilliSeconds(hrs, min, sec)
local storage.setItem("pastTime", startTime)
}
interval = localStorage.getItem("pastTime") - getMilliSeconds(hrs, min, sec)
setInterval(this.timeOut(), interval);
}
В функции timeOut,
timeOut() {
// Call your data
localStorage.setItem("pastTime", getMilliSeconds(hrs, min, sec));
// Changing your pastTime in above statement. Since, you want to continue it every one hour.
interval = localStorage.getItem("pastTime") - getMilliSeconds(hrs, min, sec)
setInterval(this.timeOut(), interval);
}
Чтобы получить, миллисекунды:
getMilliSeconds (hrs, min, sec) {
return((hrs*60*60+min*60+sec)*1000);
}
Надеюсь, вы поняли, что происходит. При инициализации мы впервые установим значение локального хранилища. И каждый раз мы будем выполнять разницу между значением локального хранилища и текущим временем. И эта разница отправляется в setInterval (). Как только вы вызываете timeOut (), мы снова устанавливаем pastTime в локальном хранилище и, следовательно, устанавливаем setInterval (). У меня нет компьютера на данный момент со мной. Итак, все это делается без компьютера. Если у вас возникнет какая-то проблема, она должна быть незначительной и решить ее.