用jquery计算出差用时。
有五个表单字段:出差日期1,出差时间1,回程日期2,回程时间2,出差用时(小时)
要绑定一个触发事件,输入前四个字段后,点击空白处,自动计算出差用时(小时)
日期格式 年-月-日 时间格式 h:m:s
下面的问题出在哪里
出差日期1 : <input id="1" type="text" />
出差时间1: <input id="2" type="text" />
出差日期2 : <input id="3" type="text" />
出差时间2: <input id="4" type="text" />
出差用时: <input id="5" type="text" />
<script language="javascript">
$('#1,#2,#3,#4').blur(function () {
var d1 = $('#1');//出差日期1
var t1 = $('#2');//出差时间1
var d2 = $('#3');//出差日期2
var t2 = $('#4');//出差时间2
if (d1.val() == '' || t1.val() == '' || d2.val() == '' || t2.val() == '') return; //转为时间
var d1 = new Date(d1.replace(/-/g, '/') + ' ' + t1);
var d2 = new Date(d2.replace(/-/g, '/') + ' ' + t2);
var hour = Math.abs(d1.getTime() - d2.getTime()) / 1000 / 60 / 60;//小时
$('#5').val(hour); //如果不是输入控件用html方法
});
</script>
前面4个日期都绑定blur事件然后同时获取4个日期对象,判断全部不为空时执行计算
$('#d1,#t1,#d2,#t2').blur(function () {
var d1 = $('#d1');//出差日期1
var t1 = $('#t1');//出差时间1
var d2 = $('#d2');//出差日期2
var t2 = $('#t2');//出差时间2
if (d1.val() == '' || t1.val() == '' || d2.val() == '' || t2.val() == '') return;
//转为时间
var d1 = new Date(d1.replace(/-/g, '/') + ' ' + t1);
var d2 = new Date(d2.replace(/-/g, '/') + ' ' + t2);
var hour = Math.abs(d1.getTime() - d2.getTime()) / 1000 / 60 / 60;//小时
$('#出差用时ID').val(hour);//如果不是输入控件用html方法
});
1.java方法
function int getDat(String startTime,String endTime){
long to = df.parse(startTime).getTime();
long from = df.parse(endTime).getTime();
int day = (int) ((from - to) / (1000 * 60 * 60 * 24......
答案就在这里:计算两个时间的日期差
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。
空白处绑定鼠标点击事件onmouseup="click();",click(){var startTime=$("#startTime").val();var endTime=$("#endTime").val();(或者通过document.getElementById('')获取时间字符串);var st1 = Date.parse(new Date(startTime))//开始时间转换成时间戳;var en1 = Date.parse(new Date(endTime))//结束时间转换成时间戳;(en1-st1)/1000/60/60得到小时};
将时间转换成时间戳,这样的话直接相减就行了,比较方便
执行了没效果,问题出在哪里
出差日期1 : <input id="1" type="text" />
出差时间1: <input id="2" type="text" />
出差日期2 : <input id="3" type="text" />
出差时间2: <input id="4" type="text" />
出差用时: <input id="5" type="text" />
<script language="javascript">
$('#field12886,#field12888,#field12887,#field12889').blur(function () {
var d1 = $('#1');//出差日期1
var t1 = $('#2');//出差时间1
var d2 = $('#3');//出差日期2
var t2 = $('#4');//出差时间2
if (d1.val() == '' || t1.val() == '' || d2.val() == '' || t2.val() == '') return; //转为时间
var d1 = new Date(d1.replace(/-/g, '/') + ' ' + t1);
var d2 = new Date(d2.replace(/-/g, '/') + ' ' + t2);
var hour = Math.abs(d1.getTime() - d2.getTime()) / 1000 / 60 / 60;//小时
$('#5').val(hour); //如果不是输入控件用html方法
});
</script>
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>出差时差</title>
<script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
<script>
$(document).ready(function() {
$("#t4 input").blur(function() {
//取出日期时间的值
var day1 = $("#t1 input").val();
var time1 = $("#t2 input").val();
var day2 = $("#t3 input").val();
var time2 = $("#t4 input").val();
//拆分日期
var arr1 = day1.split("-");
var arr2 = day2.split("-");
//字符串转换成日期对象
var date1 = new Date(parseInt(arr1[0]), parseInt(arr1[1]), parseInt(arr1[2]), parseInt(time1));
var date2 = new Date(parseInt(arr2[0]), parseInt(arr2[1]), parseInt(arr2[2]), parseInt(time2));
//计算并插入结果
$("#t5").html((Number(date2) - Number(date1)) / 3600000);
})
})
</script>
</head>
<body>
<form>
<fieldset>出差时间计算</fieldset>
<table>
<tr>
<td>出差日期(年月日:2016-06-01)</td>
<td id="t1"><input type="text" /></td>
</tr>
<tr>
<td>出差时间(小时:24)</td>
<td id="t2"><input type="text" /></td>
</tr>
<tr>
<td>回程日期(年月日:2016-06-01)</td>
<td id="t3"><input type="text" /></td>
</tr>
<tr>
<td>回程时间(小时:24)</td>
<td id="t4"><input type="text" /></td>
</tr>
<tr>
<td>出差用时(小时)</td>
<td id="t5"><input type="text" /></td>
</tr>
</table>
</form>
</body>