javascript - 如何计算javascript中时间输入之间的差异?
问题描述
我想计算我的工作时间。当我输入时它工作正常
08:00 - 09:00 = 01:00
但是当我输入这个时间
23:30 - 01:30 = 10:00
它应该返回02:00
function pad(num) {
return ("0" + num).slice(-2);
}
function diffTime(start, end) {
var s = start.split(":"),
sMin = +s[1] + s[0] * 60,
e = end.split(":"),
eMin = +e[1] + e[0] * 60,
diff = eMin - sMin;
if (diff < 0) {
sMin -= 12 * 60;
diff = eMin - sMin
}
var h = Math.floor(diff / 60),
m = diff % 60;
return "" + pad(h) + ":" + pad(m);
}
document.getElementById('button').onclick = function() {
document.getElementById('delay').value = diffTime(
document.getElementById('timeOfCall').value,
document.getElementById('timeOfResponse').value
);
}
<input type="time" id="timeOfCall">
<input type="time" id="timeOfResponse">
<button type="button" id="button">CLICK</button>
<input type="time" id="delay">
解决方案
这是查看满足所有测试用例的问题的另一种更简单的方法,如果有任何用例失败,请尝试所有测试用例,然后告诉我我会修复它。
您只需先计算小时数,然后检查是上午还是下午,然后简单地计算分钟数。
function diffTime(start, end) {
var s = start.split(":");
var e = end.split(":");
var dHour;
var dMinute ;
var startHour = parseInt(s[0]);
var endHour = parseInt(e[0]);
var startMinute = parseInt(s[1]);
var endMinute = parseInt(e[1]);
// For counting difference of hours
if((startHour>12 && endHour>12) || (startHour<12 && endHour<12))
{
if(startHour<endHour)
{
dHour = endHour - startHour;
}
else if(startHour>endHour)
{
dHour = 24 - ( startHour - endHour);
}
else
{
dHour = 24;
}
}
else if(startHour>12 && endHour<=12)
{
dHour = (24 - startHour) + endHour;
}
else if(startHour<=12 && endHour > 12)
{
dHour = endHour - startHour;
}
else
{
dHour = 24
}
// For Counting Difference of Minute
if (startMinute>endMinute)
{
dMinute = 60 - (startMinute - endMinute);
dHour = dHour - 1;
}
else if(startMinute<endMinute)
{
dMinute = endMinute - startMinute;
}
else
{
dMinute = 0
}
return dHour + " Hours " + dMinute + " Minutes";
}
document.getElementById('button').onclick = function() {
document.getElementById('delay').value = diffTime(
document.getElementById('timeOfCall').value,
document.getElementById('timeOfResponse').value);
}
<input type="time" id="timeOfCall">
<input type="time" id="timeOfResponse">
<button type="button" id="button">CLICK</button>
<input type="text" id="delay">
推荐阅读
- linux - 使用 pinctrl-single 将板静态引脚映射到设备树中的自身不适用于 Beaglebone
- python - 我正在尝试登录 LinkedIn 以执行网页抓取,但在尝试登录时收到“没有此类元素:无法找到元素”
- postgresql - 如何找到一个月内购买超过 10 次的客户 postgresql?
- python - 使用 Python 解析嵌套的 HTML 列表
- r - 具有国家-行业-时间变量的固定效应模型
- node.js - 使用nodejs的视频和图像
- excel - 如何在 MAXIFS VBA EXCEL 中使用运算符
- android - 如何在线性布局中将两个 CardView 高度作为 wrap_content
- python - 熊猫理解 groupby
- typescript - 在单独的服务文件中使用 axios 上传图像