Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不使用MomentJS获取时差_Javascript_Angular_Typescript_Momentjs_Angular Moment - Fatal编程技术网

Javascript 不使用MomentJS获取时差

Javascript 不使用MomentJS获取时差,javascript,angular,typescript,momentjs,angular-moment,Javascript,Angular,Typescript,Momentjs,Angular Moment,嘿,伙计们,我正在尝试使用MomentJS来计算时间差,这样我就可以建立一个倒计时钟。 问题是我遇到了以下错误: 弃用警告:提供的值不是可识别的RFC2822或ISO格式。moment构造回到js Date(),这在所有浏览器和版本中都不可靠。不鼓励使用非RFC2822/ISO日期格式,并将在即将发布的主要版本中删除。有关更多信息,请参阅。 论据: [0]\u IsamentObject:true、\u isUTC:false、\u useUTC:false、\u l:undefined、\u

嘿,伙计们,我正在尝试使用MomentJS来计算时间差,这样我就可以建立一个倒计时钟。 问题是我遇到了以下错误:

弃用警告:提供的值不是可识别的RFC2822或ISO格式。moment构造回到js Date(),这在所有浏览器和版本中都不可靠。不鼓励使用非RFC2822/ISO日期格式,并将在即将发布的主要版本中删除。有关更多信息,请参阅。 论据: [0]\u IsamentObject:true、\u isUTC:false、\u useUTC:false、\u l:undefined、\u i:00:00、\u f:undefined、\u strict:undefined、\u locale:[object]

我的console.log是
NaN

我做错了什么

以下是TS:

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);
}


首先,如果不是你的终点是恒定的,你需要现在就开始行动。那怎么算数呢

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
}

在html页面中调用
startTimer('11AM','2PM')

首先,如果你的终端不是常量,你需要现在就开始工作。那怎么算数呢

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
}

在html页面中调用
startTimer('11AM','2PM')

使用减法而不是差分,如下所示:

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);

使用减法而不是差分,如下所示:

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);

不要将警告与错误混淆。这只是告诉你,总有一天这个功能会被删除。在此期间,它仍然可以工作。嘿@JohnLord谢谢,你说得对,我一直在关注console.log结果。谢谢你:不要把警告和错误混为一谈。这只是告诉你,总有一天这个功能会被删除。在此期间,它仍然可以工作。嘿@JohnLord谢谢,你说得对,我一直在关注console.log结果。谢谢你:谢谢你,但是结果是不正确的:(所以如果
const now='11:00:00'
const endTime=14:00:00
差异应该是
3:00:00
对吧?但是我得到的是'18:29'。谢谢你,但是结果是不正确的:(因此,如果
const now='11:00:00'
const endTime=14:00:00
差异应该是
3:00:00
对吗?但我得到的是'18:29'。嘿@Sharanya谢谢,但这也没有返回正确的结果。因此,如果我的结束时间是下午2点,而现在是上午11点,结果将是11点而不是3点@Sharanya谢谢,b但是这也没有返回正确的结果。因此,如果我的结束时间是下午2点,现在是上午11点,那么结果是11点,而不是3点