Угловой отсчет между датой из базы данных и датой сейчас

Я добавляю функцию на свой веб-сайт, чтобы пользователь мог видеть, сколько времени у него есть до конца его испытания. В расчете я беру информацию пользователя с 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;

0 ответов

Другие вопросы по тегам