gpt4 book ai didi

javascript - 计算军事时间以获得在 Javascript 中工作的小时数和分钟数

转载 作者:行者123 更新时间:2023-11-29 21:07:55 25 4
gpt4 key购买 nike

我有几天的军事(24 小时)时间的“上类打卡”和“下类打卡”条目,都是纯数字。

Clock In | Clock Out
--------------------
1020 | 1555
1116 | 1857
1049 | 1204

我手动计算出此人已工作14 小时 31 分钟。我有一个 HTML 页面,在一个类中包含很多这些条目,因此我使用以下代码在 Javascript 中获取它们:

$('.clockin').each(function() {clockinsum += +$(this).text()||0;});
$('.clockout').each(function() {clockoutsum += +$(this).text()||0;});

我不确定从这里到哪里去,或者这是否是正确的开始方式。有没有办法让 Javascript/jQuery 从这些条目中计算出工作的小时数和分钟数?

最佳答案

你需要一些东西来告诉时差。

在 JavaScript 中,你总是以毫秒为单位工作,所以找到每个开始时间和结束时间之间的毫秒差,将它们相加并使用该时间来计算花费的时间:

var list = [
["1020", "1555"],
[1116, 1857],
[1049, "1204"],
];
/**
* Difference between two times in milliseconds
*
* @param {(number | string)} start
* @param {(number | string)} end
* @returns {number}
*/
function getTimeDifference(start, end) {
var d1 = new Date(0);
d1.setHours(parseInt(start.toString().substr(0, 2), 10));
d1.setMinutes(parseInt(start.toString().substr(2, 2), 10));
var d2 = new Date(0);
d2.setHours(parseInt(end.toString().substr(0, 2), 10));
d2.setMinutes(parseInt(end.toString().substr(2, 2), 10));
return d2.getTime() - d1.getTime();
}
//figure how long this guy has worked:
var compiledTime = 0;
for (var index = 0; index < list.length; index++) {
compiledTime += getTimeDifference(list[index][0], list[index][1]);
}
//At this point "compiledTime" contains the milliseconds the guy has worked
//Let's print it nice and pretty
var compiledTimeDate = new Date(compiledTime);
alert("Hours: " + compiledTimeDate.getHours() + "\n" +
"Minutes: " + compiledTimeDate.getMinutes() + "\n" +
"Seconds: " + compiledTimeDate.getSeconds() + "\n" +
compiledTimeDate.getHours() + ':' + compiledTimeDate.getMinutes() + ':' + compiledTimeDate.getSeconds());
//From here you can use the Date object methods to do whatever

关于javascript - 计算军事时间以获得在 Javascript 中工作的小时数和分钟数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43072415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com