Javascript 两小时之间的时差

Javascript 两小时之间的时差,javascript,Javascript,我已经找了几天这样的代码了。我在论坛上搜索了很多,找到了一堆关于我需要什么的帖子,但是我无法让它们正常工作(我在JS方面没有经验)。 下面的代码在某种程度上满足了我的需要。 例如,如果开始时间为21:00,结束时间为09:00,则该值为负值 有人能帮我把它调成正数吗?(我认为这与前一天的啤酒有关,我不确定) var start=document.getElementById(“start”).value; var end=document.getElementById(“end”).value

我已经找了几天这样的代码了。我在论坛上搜索了很多,找到了一堆关于我需要什么的帖子,但是我无法让它们正常工作(我在JS方面没有经验)。 下面的代码在某种程度上满足了我的需要。 例如,如果开始时间为21:00,结束时间为09:00,则该值为负值

有人能帮我把它调成正数吗?(我认为这与前一天的啤酒有关,我不确定)


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只读取函数),可以通过降低时间间隔来更改时间更新的速度
PS:我在这里找到了这个代码

提前感谢,,
eLy

根据您的要求,有两种可能的解决方案。 开始时间:上午11点,结束时间:上午9点

如果希望输出为2小时

var diff = Math.abs(endDate.getTime() - startDate.getTime());
如果希望输出为22小时

var diff = endDate.getTime() - startDate.getTime();
    if (diff < 0) {
        diff += 24 * 1000 * 60 * 60;
    }
var diff=endDate.getTime()-startDate.getTime();
如果(差异<0){
差值+=24*1000*60*60;
}

Swap
start
end
Math.abs(你的表达式)
来表示绝对值。@Taplar说了什么,使用
abs()
Taplar,我该怎么办?抱歉,但正如我所说,在JS.maybuly
var diff=Math.abs(endDate.getTime()-startDate.getTime())中有0次经验。如果你打算使用javascript代码,你真的应该花点时间熟悉它。如果你在任何一个小问题出现的时候都要不断地问别人问题,这对任何参与其中的人来说都不是一件有趣的事。我需要它,例如,从00:00开始,到08:00结束,结果是8小时。但是,如果开始时间是20:00,结束时间是01:00(上午),则应该是5小时,而不是0-19:00(如图所示),这就是为什么我提出了两种解决方案:
var diff = endDate.getTime() - startDate.getTime();
    if (diff < 0) {
        diff += 24 * 1000 * 60 * 60;
    }