数学函数->;使用基本javascript添加hh时间

数学函数->;使用基本javascript添加hh时间,javascript,Javascript,如何使用javascript以24小时时间格式计算两个以上的时间小时值,如(10:00+02:30+03:00)=15:30 请参阅所附的代码片段,您可以看到目标是什么。不幸的是,我不知道怎样才能完成它 目前,我正在使用以下代码计算三个文本字段。 另见 函数输出(){ var value1=document.getElementById('value1').value; var value2=document.getElementById('value2').value; var value3

如何使用javascript以24小时时间格式计算两个以上的时间小时值,如
(10:00+02:30+03:00)=15:30

请参阅所附的代码片段,您可以看到目标是什么。不幸的是,我不知道怎样才能完成它

目前,我正在使用以下代码计算三个文本字段。 另见

函数输出(){
var value1=document.getElementById('value1').value;
var value2=document.getElementById('value2').value;
var value3=document.getElementById('value3').value;
document.getElementById('result1').innerHTML=(parseInt(value1)+parseInt(value2))+parseInt(value3);
}

+ 
+ 

您可以先转换为分钟,然后在显示时转换为小时

函数输出(){
var value1=document.getElementById('value1').value;
var value1Sec=getMinuteValue(值1);
var value2=document.getElementById('value2').value;
var value2Sec=getMinuteValue(值2);
var value3=document.getElementById('value3').value;
var value3Sec=getMinuteValue(值3);
document.getElementById('result1').innerHTML=getTime(value1Sec+value2Sec+value3Sec)
}
函数getMinuteValue(val){
var arr=val.split(“:”);
var值=+arr[0]*60++arr[1];
返回isNaN(值)?0:值
}
函数getTime(val){
var最小值=(val%60);

min=min我认为这将更容易实现。不过,您需要进行格式检查,我建议使用onblur事件,而不是每次按下键时触发的onchange。下面是一个有效的解决方案:


根据需要对最终结果进行格式化,我将其保留为十进制,否则(ac而不是手动进行时间计算,您可以让javascript引擎进行计算。将第一个值
value1
转换为虚拟日期格式,并将其他2个值的小时和分钟添加到第一个日期

3600000
乘以
hour
60000
乘以
minute

函数输出(){
var value1=document.getElementById('value1').value;
var value2=document.getElementById('value2').value;
var value3=document.getElementById('value3').value;
document.getElementById('result1').innerHTML=new Date(新日期('2018-04-26'+value1.getTime()+value2.split(':')[0]*3600000+value2.split(':')[1]*60000+value3.split(':'))[0]*3600000+value3.split(':')[1]*60000.toString().split('[4];
}

+ 
+ 

谢谢你看起来很整洁!但是我如何将结果限制在23:59,并在超过23:59时从00:00开始继续?非常感谢。看起来不错,除了分钟。00:03+10:00+00:00给出10:3@Alex再次核对我的答案。不需要时间做数学题。
var inputs = document.getElementsByTagName("input");
function output(){
    document.getElementById('result1').textContent = 
    Array.prototype.slice.call(inputs).reduce(function(ac,d,i,a){
    ac += d.value.split(":").reduce(function(ac,d,i){
            return ac += !i ? +d : +d/60
        },0);
        return i === a.length - 1 ? ac%24 : ac;
  },0);
}