Javascript Timediff减去中断时间,使用24小时格式的jquery
我正在寻找一个例子来计算时间差之间的时间(24小时)减去休息时间在H:m格式 开始时间:08:30 结束时间:17:30 休息时间:01:50(表示休息时间110分钟休息时间) 净工作时间应为:07:10(7h10m)和7.17(十进制) 有没有一个例子? 我将感谢你的意见。Javascript Timediff减去中断时间,使用24小时格式的jquery,javascript,jquery,Javascript,Jquery,我正在寻找一个例子来计算时间差之间的时间(24小时)减去休息时间在H:m格式 开始时间:08:30 结束时间:17:30 休息时间:01:50(表示休息时间110分钟休息时间) 净工作时间应为:07:10(7h10m)和7.17(十进制) 有没有一个例子? 我将感谢你的意见。 谢谢还有其他方法可以做到这一点,但要计算这个时差,您必须首先将时间戳转换为秒,然后在计算为秒后,再次转换为时间戳以显示。如代码中所示: HTML: 您可以登录此小提琴:您的代码输入成功了吗?太好了,谢谢。很好!如果您能将答
谢谢还有其他方法可以做到这一点,但要计算这个时差,您必须首先将时间戳转换为秒,然后在计算为秒后,再次转换为时间戳以显示。如代码中所示: HTML:
您可以登录此小提琴:您的代码输入成功了吗?太好了,谢谢。很好!如果您能将答案设置为解决方案,我将不胜感激
<html>
<label>Start Time</label><br>
<input id="start" value="08:30"><br>
<label>End Time</label><br>
<input id="end" value="17:30"><br>
<label>Break Time</label><br>
<input id="breaktime" value="01:50"><br>
<br>
<label>Difference Time</label><br>
<input id="diff"><br>
<label>As decimal</label><br>
<input id="decimals">
</html>
function getTime(seconds) {
//an hour contains 60 * 60 = 3600 seconds
//a minut contains 60 seconds
//the amount of seconds we have left
var leftover = seconds;
//how many full hours fits in the amount of leftover seconds
var hours = Math.floor(leftover / 3600);
//how many seconds are left
leftover = leftover - (hours * 3600);
//how many minutes fits in the amount of leftover seconds
var minutes = Math.floor(leftover / 60);
//how many seconds are left
leftover = leftover - (minutes * 60);
return ('0' + hours).slice(-2) + ':' + minutes;
}
function getSeconds(timestamp) {
var hms = timestamp + ':00'; // your input string
var a = hms.split(':'); // split it at the colons
// minutes are worth 60 seconds. Hours are worth 60 minutes.
var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]);
return seconds;
}
function getDecimals(timestamp) {
var hms = timestamp + ':00'; // your input string
var a = hms.split(':'); // split it at the colons
//To get the total decimal hours we use the formula: h = hours + (minutes / 60) + (seconds / 3600).
var decimal = (+a[0]) + ((+a[1]) / 60) + ((+a[2]) / 3600);
return decimal.round(2)
}
var endTime = document.getElementById("end").value;
var startTime = document.getElementById("start").value;
var breakTime = document.getElementById("breaktime").value;
var diff = getSeconds(endTime) - getSeconds(startTime) - getSeconds(breakTime);
document.getElementById("diff").value = getTime(diff);
document.getElementById("decimals").value = getDecimals(getTime(diff));