如何在javascript中对两个时间值求和
我一直在尝试实现将两个值相加为小时的函数。 “示例:01:30+00:30=02:00” 下面的函数只有当两个值的和等于一个整数时才起作用,比如上面的例子。但问题是当值为01:45+00:20时,它给出的是33:05,而不是02:05 我试过几种组合,但到目前为止都没有效果如何在javascript中对两个时间值求和,javascript,Javascript,我一直在尝试实现将两个值相加为小时的函数。 “示例:01:30+00:30=02:00” 下面的函数只有当两个值的和等于一个整数时才起作用,比如上面的例子。但问题是当值为01:45+00:20时,它给出的是33:05,而不是02:05 我试过几种组合,但到目前为止都没有效果 function sumOFHoursWorked(){ var time1 = "00:45"; var time2 = "01:20"; var hour=0; var minute=
function sumOFHoursWorked(){
var time1 = "00:45";
var time2 = "01:20";
var hour=0;
var minute=0;
var second=0;
var splitTime1= time1.split(':');
var splitTime2= time2.split(':');
hour = parseInt(splitTime1[0])+parseInt(splitTime2[0]);
minute = parseInt(splitTime1[1])+parseInt(splitTime2[1]);
hour = hour + minute/60;
minute = minute%60;
second = parseInt(splitTime1[2])+parseInt(splitTime2[2]);
minute = minute + second/60;
second = second%60;
var REalhourstime = ('0' + hour).slice(-2)+':'+('0' + minute).slice(-2);
alert(REalhourstime);
document.getElementById('realhorasTB').innerHTML = REalhourstime;
}
这实际上取决于你的时间,我的意思是它将是在
mm:ss
formet或hh:mm:ss
或hh:mm:ss:msms
中,但只需几秒钟和几分钟,你就可以做这样的事情
函数sumOFHoursWorked(){
var time1=“00:45”。拆分(':');
var time2=“01:20”。拆分(':');
设secondSum=Number(time1[1])+Number(time2[1]);
设minSum=Number(time1[0])+Number(time2[0]);
如果(二次总和>59){
secondSum=数学绝对值(60-secondSum);
minSum+=1;
}
如果(二次总和<10){
secondSum=`0${secondSum}`;
}
如果(分钟<10){
minSum=`0${minSum}`;
}
返回`${minSum}:${secondSum}`;
}
log(sumOFHoursWorked())代码>我会将它转换为分钟,然后减去,然后计算小时和分钟
功能总分钟数(时间){
var parts=time.split(“:”)
返回+部分[0]*60++部分[1]
}
函数timeDiff(time1,time2){
var mins1=总分钟数(时间1)
var mins2=总分钟数(时间2)
变量差异=分钟2-分钟1
变量小时数='0'+(数学下限(差异/60))
变量分钟数='0'+(差异小时数*60)
返回(小时片(-2)+':'+分钟片(-2))
}
console.log(timeDiff(“00:45”、“01:20”))
首先,time1
和time2
字符串缺少末尾的秒数。例如,var time1=“00:45:00”
。否则,您的计算将有一些NaN
值
主要问题是hour
是一个浮点数(~2.083333),因此('0'+hour)
是'02.083333'
您可以使用类似的方法:('0'+Math.floor(hour))
您不使用Javascript的内置日期时间函数有什么原因吗?使用Javascript的内置日期对象将使这更为平滑let date=new date()
然后date.toLocaleTimeString
以小时:分钟为单位获取格式。好的,我将添加缺少的秒数。这确实可能是我的问题。这对我来说很有用。我现在就用这个,因为没人给我其他建议。谢谢你,也谢谢所有帮助我的人。