Угловой отсчет между датой из базы данных и датой сейчас
Я добавляю функцию на свой веб-сайт, чтобы пользователь мог видеть, сколько времени у него есть до конца его испытания. В расчете я беру информацию пользователя с http.get
метод, в котором одно из полей является датой окончания. Тогда я беру Date.Now
как другой параметр:
У меня есть метод трубы для обратного отсчета:
transform(value: number): string {
const hours: number = Math.floor(value / 3600);
const days: number = Math.floor(value / 24);
const minutes: number = Math.floor((value % 3600) / 60);
return ('00' + days).slice(-2) + ':' + ('00' + hours).slice(-2) + ':' +
('00' + minutes).slice(-2) + ':' + ('00' + Math.floor(value - minutes * 60)).slice(-2);}
это метод в моем component.ts, где я беру endDate из базы данных:
countDown; counter = 6434; tick = 1000;
getUserChallenges() {
this.userService.getUserChallenges(this.activeParameter).subscribe((data: UserChallengesModel[]) => {
this.userChallengesList$ = Observable.of(data);
const date = Date.parse(data[3].endDate.toString());
const nowDate = new Date().getTime();
const dateDiff = date - nowDate;
this.counter = dateDiff;
this.countDown = Observable.timer(0, this.tick)
.take(this.counter)
.map(() => --this.counter);
}); }
и вот как я использую его в HTML:
<h2>{{countDown | async | formatTime}}</h2>
Кажется, все имеет смысл, но каждый раз после обновления я получаю разные значения обратного отсчета вместо this.countdown = date - nowDate;