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

标签 javascript jquery html input time

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

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

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/

相关文章:

java - HtmlUnit 无法获取 IFRAME 添加的 js/ajax

javascript - 需要使用 JavaScript 使用 Date() 函数每天更改视频 src

javascript - 如何使用 wordpress 网站的引导轮播删除移动版本中的第一张幻灯片

javascript - polymer 结合 on-tap 事件 on inside-h-t-m-l

javascript - 父级上的事件,单击子级(事件冒泡)

java - 检查jsp中是否存在图像

ruby-on-rails - rails 3 : How can I add a complex row to a table using UJS?

c# - 如何将 HTML 参数传递给 ASP.NET?

javascript - 如何从多个 SELECT 标签中获取值 (Jquery)

javascript - datetimepicker - 将日期值传递给 Angular Controller