Не получая разницу во времени используя MomentJS - PullRequest
0 голосов
/ 14 апреля 2020

Эй, ребята, я пытаюсь получить разницу во времени, используя Момент JS, чтобы я мог построить часы обратного отсчета. Проблема в том, что я получаю эту ошибку:

Предупреждение об устаревании: предоставленное значение не соответствует распознанному формату RFC2822 или ISO. момент создания возвращается к js Date (), который не надежен во всех браузерах и версиях. Не RFC2822 / ISO форматы даты не рекомендуется и будут удалены в следующем основном выпуске. Пожалуйста, обратитесь к http://momentjs.com/guides/# / предупреждений / js -дата / для получения дополнительной информации. Аргументы: [0] _isAMomentObject: true, _isUT C: false, _useUT C: false, _l: undefined, _i: 00:00, _f: undefined, _strict: undefined, _locale: [объект объекта]

Мой console.log - NaN

Что я делаю не так?

Вот ТС:

now: any;

ngOnInit() {
     this.now = parseInt(moment().format('h'));
}
///
startTimer() {
    const endTime = moment('10AM', ['h:mm A']).format('HH:mm');
    const a = moment(this.now, 'HHmm').diff(endTime, 'hours');
    console.log(a);
}

Ответы [ 2 ]

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

Используйте вычитание вместо различий, например:

const endTime = moment('10:00 AM', ['h:mm A']).format('HH:mm');
const a = moment(moment(this.now, 'h:mm A').subtract(endTime, 'hours')).format('hh');
console.log(a);
1 голос
/ 14 апреля 2020

Во-первых, теперь вам нужно взять внутреннюю часть, чтобы функционировать, если не ваш конец имеет постоянную величину. тогда как это может рассчитывать.

startTimer(from,to){
    const now = moment(from, ['h:mm A']).format('H:mm:ss')
    const end = moment(to, ['h:mm A']).format('H:mm:ss');
    var a ;
    if(now>end){
            a = moment.utc(moment(now,['H:mm']).diff(moment(end,['H:mm']))).format("H:mm");
    }
    else{
          a ="-"+ moment.utc(moment(end,['H:mm']).diff(moment(now,['H:mm']))).format("H:mm");
    }
    return a
}

вызов startTimer('11AM','2PM') на вашей html странице

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...