我如何计算24小时格式的两次差异? [英] How can I calculate the difference between two times that are in 24 hour format?

查看:61
本文介绍了我如何计算24小时格式的两次差异?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在JavaScript中,如何计算两个24小时格式之间的差异?



示例:从 08:00:00 至 23:00:00



从两个下拉菜单中获取两个时间值并尝试计算两次之间的小时差。我得到了错误的结果...



工作示例: http://jsfiddle.net/VnwF7/1/



脚本:

  $(document).ready(function(){
function calculateTime(){
//获取值$ b $ var var valuestart = $ (select [name ='timestart'])。val();
var valuestop = $(select [name ='timestop'])。val();

//创建日期格式
var timeStart = new Date(2007/01/01+ valuestart);
var timeEnd = new Date(2007/01/01+ valuestop);

var差异= timeEnd - timeStart;
var diff_result =新日期(差异);

var hourDiff = diff_result.getHours();

$(p)。html(< b>总时数:< / b>+ hourDiff)
}
$(select).change(calculateTime);
calculateTime();
});

HTML:

 < select name =timestart> 


解决方案

您可以立刻减去小时数方式

  var valuestart = $(select [name ='timestart'])。val(); 
var valuestop = $(select [name ='timestop'])。val();

//创建日期格式
var timeStart = new Date(01/01/2007+ valuestart).getHours();
var timeEnd = new Date(2007年1月1日+ valuestop).getHours();

var hourDiff = timeEnd - timeStart;

以下是工作小提琴 http://jsfiddle.net/VnwF7/4/


In JavaScript, how can I calculate the difference between two times that are in 24 hour format?

Example: Get how many hours elapsed from 08:00:00 to 23:00:00.

Below I'm getting two time values from two dropdown menus and trying to calculate the difference in hours between the two times. I get wrong results...

Working example: http://jsfiddle.net/VnwF7/1/

Script:

$(document).ready(function() {
    function calculateTime() {
             //get values
        var valuestart = $("select[name='timestart']").val();
        var valuestop = $("select[name='timestop']").val();

             //create date format       
        var timeStart = new Date("01/01/2007 " + valuestart);
        var timeEnd = new Date("01/01/2007 " + valuestop);

        var difference = timeEnd - timeStart;            
        var diff_result = new Date(difference);    

        var hourDiff = diff_result.getHours();

        $("p").html("<b>Total Hours:</b> " + hourDiff )          
    }
    $("select").change(calculateTime);
    calculateTime();
});

HTML:

<select name="timestart">
<option value="00:00:00">12:00 am</option>
<option value="01:00:00">1:00 am</option>
<option value="02:00:00">2:00 am</option>
<option value="03:00:00">3:00 am</option>
<option value="04:00:00">4:00 am</option>
<option value="05:00:00">5:00 am</option>
<option value="06:00:00">6:00 am</option>
<option value="07:00:00">7:00 am</option>
<option value="08:00:00">8:00 am</option>
<option value="09:00:00">9:00 am</option>
<option value="10:00:00">10:00 am</option>
<option value="11:00:00">11:00 am</option>
<option value="12:00:00">12:00 pm</option>
<option value="13:00:00">1:00 pm</option>
<option value="14:00:00">2:00 pm</option>
<option value="15:00:00">3:00 pm</option>
<option value="16:00:00">4:00 pm</option>
<option value="17:00:00">5:00 pm</option>
<option value="18:00:00">6:00 pm</option>
<option value="19:00:00">7:00 pm</option>
<option value="20:00:00">8:00 pm</option>
<option value="21:00:00">9:00 pm</option>
<option value="22:00:00">10:00 pm</option>
<option value="23:00:00">11:00 pm</option>
</select>

<select name="timestop">
<option value="00:00:00">12:00 am</option>
<option value="01:00:00">1:00 am</option>
<option value="02:00:00">2:00 am</option>
<option value="03:00:00">3:00 am</option>
<option value="04:00:00">4:00 am</option>
<option value="05:00:00">5:00 am</option>
<option value="06:00:00">6:00 am</option>
<option value="07:00:00">7:00 am</option>
<option value="08:00:00">8:00 am</option>
<option value="09:00:00">9:00 am</option>
<option value="10:00:00">10:00 am</option>
<option value="11:00:00">11:00 am</option>
<option value="12:00:00">12:00 pm</option>
<option value="13:00:00">1:00 pm</option>
<option value="14:00:00">2:00 pm</option>
<option value="15:00:00">3:00 pm</option>
<option value="16:00:00">4:00 pm</option>
<option value="17:00:00">5:00 pm</option>
<option value="18:00:00">6:00 pm</option>
<option value="19:00:00">7:00 pm</option>
<option value="20:00:00">8:00 pm</option>
<option value="21:00:00">9:00 pm</option>
<option value="22:00:00">10:00 pm</option>
<option value="23:00:00">11:00 pm</option>
</select>

<p></p>

解决方案

You can just subtract the hours right away doing it this way

var valuestart = $("select[name='timestart']").val();
var valuestop = $("select[name='timestop']").val();

//create date format          
var timeStart = new Date("01/01/2007 " + valuestart).getHours();
var timeEnd = new Date("01/01/2007 " + valuestop).getHours();

var hourDiff = timeEnd - timeStart;             

Here's the working fiddle http://jsfiddle.net/VnwF7/4/

这篇关于我如何计算24小时格式的两次差异?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆