使用javascript时的到次总和

使用javascript时的到次总和,javascript,Javascript,有谁能告诉我如何使用javascript(momentjs)进行两次求和,例如: 2:44:56和2:50:56 我试过了,但没用: 2:44:56 + 2:50:56 有什么建议吗???你可以这样做。对力矩对象使用add方法并传递数据 let x = moment({ hours:'2', minutes:'44', seconds:'56'}) .add({ hours:'2',

有谁能告诉我如何使用javascript(momentjs)进行两次求和,例如:

2:44:56和2:50:56

我试过了,但没用:

2:44:56 + 2:50:56

有什么建议吗???

你可以这样做。对力矩对象使用add方法并传递数据

let x = moment({  
         hours:'2', 
         minutes:'44',
         seconds:'56'})
       .add({ 
         hours:'2',
         minutes:'50', 
         seconds:'56' })
 console.log(x)
或者动态地传递数据

let time = {
   hours: 2,
   minutes:44, 
   seconds: 56
}
let time2 = {
   hours: 2,
   minutes:50, 
   seconds: 56
}
let y = moment(time)
         .add(time2)
console.log(y)

你可以这样做。对力矩对象使用add方法并传递数据

let x = moment({  
         hours:'2', 
         minutes:'44',
         seconds:'56'})
       .add({ 
         hours:'2',
         minutes:'50', 
         seconds:'56' })
 console.log(x)
或者动态地传递数据

let time = {
   hours: 2,
   minutes:44, 
   seconds: 56
}
let time2 = {
   hours: 2,
   minutes:50, 
   seconds: 56
}
let y = moment(time)
         .add(time2)
console.log(y)

可以将秒数相加,然后计算进位值,再将进位值与分钟数相加,依此类推。使用reduce可以轻松实现这一点:

function sum(date1, date2){
  date1 = date1.split(":");
  date2 = date2.split(":");
  const result = [];

  date1.reduceRight((carry,num, index) => {
    const max = [24,60,60][index];
    const add =  +date2[index];
    result.unshift( (+num+add+carry) % max );
    return Math.floor( (+num + add + carry) / max );
  },0);

 return result.join(":");
}

console.log(
  sum("2:44:56" , "2:50:56" )
);

可以将秒数相加,然后计算进位值并将其加到分钟总数中,依此类推。使用reduce可以轻松实现这一点:

function sum(date1, date2){
  date1 = date1.split(":");
  date2 = date2.split(":");
  const result = [];

  date1.reduceRight((carry,num, index) => {
    const max = [24,60,60][index];
    const add =  +date2[index];
    result.unshift( (+num+add+carry) % max );
    return Math.floor( (+num + add + carry) / max );
  },0);

 return result.join(":");
}

console.log(
  sum("2:44:56" , "2:50:56" )
);
Momentjs有一个对象,可用于添加或减去两个或多个时间跨度

const a = moment.duration('02:44:56');
const b = moment.duration('02:50:56');

const c = a.add(b);

console.log(c.hours() );
console.log(c.minutes() );
console.log(c.seconds() );
Momentjs有一个对象,可用于添加或减去两个或多个时间跨度

const a = moment.duration('02:44:56');
const b = moment.duration('02:50:56');

const c = a.add(b);

console.log(c.hours() );
console.log(c.minutes() );
console.log(c.seconds() );
守则: 过程:
  • 将字符串解析为矩对象(帮助它定义我们正在使用的格式
  • 通过使用
    Split()
    函数有效地将t2拆分为一个数组,其中包含
    [小时、分钟、秒]
  • 使用矩
    Add()
    方法将时间加在一起

  • 守则: 过程:
  • 将字符串解析为矩对象(帮助它定义我们正在使用的格式
  • 通过使用
    Split()
    函数有效地将t2拆分为一个数组,其中包含
    [小时、分钟、秒]
  • 使用矩
    Add()
    方法将时间加在一起

  • 矩()函数将小时、分钟、秒作为参数,并返回一个矩对象,该矩对象具有一个add()方法,该方法也可以将小时、分钟、秒作为参数并返回总时间

    尝试添加时间(时间1,时间2)

    矩()函数将小时、分钟、秒作为参数,并返回一个矩对象,该矩对象具有一个add()方法,该方法也可以将小时、分钟、秒作为参数并返回总时间

    尝试添加时间(时间1,时间2)

    好的老JS解决方案:

    var基数=新日期(0);
    var t1=新日期(基准);
    var t2=新日期(基准);
    t1.刚毛(2,45,50);
    t2.刚毛(2,50,50);
    var t=新日期(t1.getTime()+t2.getTime()-base.getTime());
    结果=t.getUTCHours()+“:”+t.getUTCMinutes()+“:”+t.getUTCSeconds();
    console.log(结果);
    好的旧JS解决方案:

    var基数=新日期(0);
    var t1=新日期(基准);
    var t2=新日期(基准);
    t1.刚毛(2,45,50);
    t2.刚毛(2,50,50);
    var t=新日期(t1.getTime()+t2.getTime()-base.getTime());
    结果=t.getUTCHours()+“:”+t.getUTCMinutes()+“:”+t.getUTCSeconds();
    

    console.log(result);
    t=newdate(t1.getTime()+t2.getTime())有什么问题?@jrook缺少一个库。JS中的所有内容都必须使用库。你可以使用一个持续时间。如何使用矩。JS
    t=newdate(t1.getTime()+t2.getTime()有什么问题
    ?@jrook它缺少一个库。JS中的所有东西都必须使用一个库。你可以使用一个持续时间。时间是动态的。我不能这样做。你可以传递变量而不是字符串:-)矩({hours:time.hours,minutes:time.minutes,seconds:time.seconds})请不要只发布代码答案。花点时间解释读者可以从中了解到的情况。嗯,时间(time1)。添加(time2)??时间是动态的。我不能这样做,你可以传递变量而不是字符串:-)时间({hours:time.hours,minutes:time.minutes,seconds:time.seconds})请不要只发布代码答案。花点时间解释一下发生在读者身上的事情,读者可以从中学到什么。嗯,现在(时间1)。添加(时间2)??请不要只发布代码答案。花点时间来解释发生在读者身上的事情,读者可以从中学到什么。@LazarLjubenović他确实试图解释它,尽管只有1.5行。请不要只发布代码答案。花点时间来解释发生在读者身上的事情,读者可以从中学到什么。@LazarLjubenović他确实试图解释它,尽管用了1.5行。这是一种巧妙的方式。这是一种巧妙的方式。