数学函数->;使用基本javascript添加hh时间
如何使用javascript以24小时时间格式计算两个以上的时间小时值,如数学函数->;使用基本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
(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);
}