读书人

JQuery获取2个时间段的时差,该怎么处理

发布时间: 2012-05-28 17:59:33 作者: rapoo

JQuery获取2个时间段的时差
现有4个文本框为开始日期、开始时间、结束日期、结束时间
如:开始日期:2012-05-23 开始时间:08:30
结束日期:2012-05-24 结束时间:17:30

注:因为是实现请假申请功能,公司现在都是每天上班8个小时,8:30-17:30,所以只求时间段内每天8:30-17:30的时差
如:2012-05-23 16:30到2012-05-24 09:30 那么时差只有2个小时,23号1个小时,24号1个小时。
日期和时间格式如上,我现在想根据这2个时间段求出时差
求大神用JS或JQuery实现!!!

[解决办法]

HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title><script type="text/javascript">window.onload = function() {    document.getElementById('btn_calc').onclick = function() {        var obj = document.getElementById('demo').getElementsByTagName('input');                var ar_ds = obj[0].value.split('-');        var ar_ts = obj[1].value.split(':');        var ds = new Date(ar_ds[0], ar_ds[1] - 1, ar_ds[2], ar_ts[0], ar_ts[1]);                 var ar_de = obj[2].value.split('-');        var ar_te = obj[3].value.split(':');        var de = new Date(ar_de[0], ar_de[1] - 1, ar_de[2], ar_te[0], ar_te[1]);                 var result = de.getTime() - ds.getTime();                //开始、结束是否超过24小时,超过减15个小时乘天数        if (result > 86400000) result -= Math.floor(result / 86400000) * 54000000;                document.getElementById('result').innerHTML = '请假时间:' + (result / 3600000).toFixed(1) + '小时';    }}</script></head><body><div id="demo">    开始日期:<input type="text" value="2012-05-23" /> 开始时间:<input type="text" value="08:30" /><br />    结束日期:<input type="text" value="2012-05-24" /> 结束时间:<input type="text" value="17:30" /><br />    <button id="btn_calc">计算</button></div><div id="result"></div></body></html> 

读书人网 >JavaScript

热点推荐