Как создать обратный отсчет, используя момент JS? - PullRequest
0 голосов
/ 14 апреля 2020

У меня действительно очень трудное время, когда я создаю часы обратного отсчета, используя момент. js, и это было доказано как боль.

Итак, у меня есть startTime как moment(); Что касается времени окончания (которое должно начаться с обратного отсчета), я получаю из диапазона ионов как String, поэтому я использую это:

const endTimeRaw = moment(
  this.formatedEndingHour.nativeElement.textContent,
  ['h:mm A']
).format('HH:mm');

, что даст мне строку «10:00 утра», например.

В данном случае мне нужно 10:00 - текущее время. Я не могу этого сделать.

Может кто-нибудь помочь, пожалуйста. Я занимаюсь этим более 6 часов и не могу этого сделать.

Спасибо


ts

async startTimer(startingTime?) {
    let startTime = new Date();
    const endTimeRaw = moment(this.formatedEndingHour.nativeElement.textContent, ['h:mm A']).format('HH:mm'); // This retuns 18:00

    return this.timeRef = setInterval(() => {
        this.counter = moment.duration(endTimeRaw, 'hours').subtract(moment().hours());
        console.log(this.counter);
        this.hours = this.counter._data.hours;
        this.minutes = this.counter._data.minutes;
        this.seconds = this.counter._data.seconds;
    }, 1000);
}

1 Ответ

0 голосов
/ 14 апреля 2020

Звучит так, как вам нужен метод diff .

const msLeft = startTime.diff(endTime)

Теперь вы можете создать длительность до очеловечить или получить эту продолжительность как единицу времени

const duration = moment.duration(msLeft)
console.log(duration.humanize()) // "a minute", or "2 minutes" or "a day"
console.log(duration.asHours()) // 13 (or how many hours there are left
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...