gpt4 book ai didi

javascript - 如何用jquery计算两次之间的小时数?

转载 作者:搜寻专家 更新时间:2023-10-31 22:13:33 24 4
gpt4 key购买 nike

我正在尝试计算两次之间的小时数。

下面是我目前所在的位置,但是这段代码在两个方面失败了。

1). 我需要 .Hours 以十进制输出时间。

(例如,一个半小时应输出 1.5,而 15 分钟应输出 0.25)。

2). 当前计算不会将时间值视为时间

(例如 23:00 到 2:00 应该等于 3不是 -21 当前)。


HTML

<input class="Time1" value="10:00" />
<input class="Time2" value="12:00" />
<input class="Hours" value="0" />

JQUERY

 $(function () {
function calculate() {
var hours = parseInt($(".Time2").val().split(':')[0], 10) - parseInt($(".Time1").val().split(':')[0], 10);
$(".Hours").val(hours);
}
$(".Time1,.Time2").change(calculate);
calculate();
});

http://jsfiddle.net/44NCk/

最佳答案

简单的方法是,如果你得到一个负值,加上 24 小时,你应该得到你的结果。

var hours = parseInt($(".Time2").val().split(':')[0], 10) - parseInt($(".Time1").val().split(':')[0], 10);

// if negative result, add 24 hours
if(hours < 0) hours = 24 + hours;

演示:http://jsfiddle.net/44NCk/1/

将分钟作为小数点涉及的内容更多一些,您可以在这个 fiddle 中看到:http://jsfiddle.net/44NCk/2/

function calculate() {
var time1 = $(".Time1").val().split(':'), time2 = $(".Time2").val().split(':');
var hours1 = parseInt(time1[0], 10),
hours2 = parseInt(time2[0], 10),
mins1 = parseInt(time1[1], 10),
mins2 = parseInt(time2[1], 10);
var hours = hours2 - hours1, mins = 0;

// get hours
if(hours < 0) hours = 24 + hours;

// get minutes
if(mins2 >= mins1) {
mins = mins2 - mins1;
}
else {
mins = (mins2 + 60) - mins1;
hours--;
}

// convert to fraction of 60
mins = mins / 60;

hours += mins;
hours = hours.toFixed(2);
$(".Hours").val(hours);
}

关于javascript - 如何用jquery计算两次之间的小时数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21777666/

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