Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 两个html时间输入之间的差异_Javascript_Html - Fatal编程技术网

Javascript 两个html时间输入之间的差异

Javascript 两个html时间输入之间的差异,javascript,html,Javascript,Html,我试图计算两个HTML时间输入元素之间的差异。在其中一个时间改变的那一刻,必须重新计算,不幸的是,我不能为彼此这样做。谁能帮我 <input type="time" id="start" value="10:00" > <input type="time" id="end" value="12:30" > <input id="diff"> <script> var start = document.getElementById("

我试图计算两个HTML时间输入元素之间的差异。在其中一个时间改变的那一刻,必须重新计算,不幸的是,我不能为彼此这样做。谁能帮我

    <input type="time"  id="start" value="10:00" >
<input type="time" id="end" value="12:30" >

<input id="diff">


<script>
var start = document.getElementById("start").value;
var end = document.getElementById("end").value;

document.getElementById("start").onchange = function() {diff(start,end)};
document.getElementById("end").onchange = function() {diff(start,end)};


function diff(start, end) {
    start = start.split(":");
    end = end.split(":");
    var startDate = new Date(0, 0, 0, start[0], start[1], 0);
    var endDate = new Date(0, 0, 0, end[0], end[1], 0);
    var diff = endDate.getTime() - startDate.getTime();
    var hours = Math.floor(diff / 1000 / 60 / 60);
    diff -= hours * 1000 * 60 * 60;
    var minutes = Math.floor(diff / 1000 / 60);

    return (hours < 9 ? "0" : "") + hours + ":" + (minutes < 9 ? "0" : "") + minutes;
}

document.getElementById("diff").value = diff(start, end);
</script>

var start=document.getElementById(“start”).value;
var end=document.getElementById(“end”).value;
document.getElementById(“start”).onchange=function(){diff(start,end)};
document.getElementById(“end”).onchange=function(){diff(start,end)};
功能差异(开始、结束){
start=start.split(“:”);
end=end.split(“:”);
var startDate=新日期(0,0,0,开始[0],开始[1],0);
var endDate=新日期(0,0,0,结束[0],结束[1],0);
var diff=endDate.getTime()-startDate.getTime();
var小时=数学楼层(差异/1000/60/60);
差异-=小时*1000*60*60;
var分钟=数学楼层(差异/1000/60);
返回(小时<9?“0”:“)+小时+”:“+(分钟<9?“0”:“)+分钟;
}
document.getElementById(“diff”).value=diff(开始,结束);

使用您的代码,您只需获得一次“开始”和“结束”的值。您必须在每次计算差值时获得该值

尽力

document.getElementById("start").onchange = function() {
var start = document.getElementById("start").value;
var end = document.getElementById("end").value;
diff(start,end)};

另一个元素也是如此。

这个时差代码太神奇了!所以,如果您所需要的只是它自身的更新,那么我将复制并稍微重新构建您的代码。同样,您的代码是惊人的:)


var start=document.getElementById(“start”).value;
var end=document.getElementById(“end”).value;
document.getElementById(“start”).onchange=function(){diff(start,end)};
document.getElementById(“end”).onchange=function(){diff(start,end)};
功能差异(开始、结束){
start=document.getElementById(“start”).value;//更新每个输入栏中的时间值
end=document.getElementById(“end”).value;//更新每个输入栏中的时间值
start=start.split(“:”);
end=end.split(“:”);
var startDate=新日期(0,0,0,开始[0],开始[1],0);
var endDate=新日期(0,0,0,结束[0],结束[1],0);
var diff=endDate.getTime()-startDate.getTime();
var小时=数学楼层(差异/1000/60/60);
差异-=小时*1000*60*60;
var分钟=数学楼层(差异/1000/60);
返回(小时<9?“0”:“)+小时+”:“+(分钟<9?“0”:“)+分钟;
}
setInterval(function(){document.getElementById(“diff”).value=diff(start,end);},1000)//要每秒更新一次时间(1000是1秒的间隔,这里包含原始代码的函数是因为setInterval只读取函数),可以通过降低时间间隔来更改时间更新的速度

每次更改事件发生时,您都需要提取
开始
结束
的值,而不是在设置之前提取一次。我该怎么做?:)嗯,逻辑地考虑一下。发生更改事件时会发生什么情况?现在,您正在调用
diff(开始,结束)
。如果您需要在调用之前获取
start
end
元素的值,您会将其放在哪里?也许在您调用
diff(开始,结束)
…Thkns之前!你真棒!