JavaScript计算两个文本框日期的差值,这个差值在第三个文本框内显示

如下 html中 有 a文本框:2013-07-07 18:00
b文档框:2013-07-07 20:30
计算两本框得出第三个框的值c: 2.5
能不能,b文档框内填好了,移除光标时,不需要按按钮,让推他自动计算

你好!!


html:

<input type="text" id="txt1" value="2013-07-07 18:00" />
<input type="text" id="txt2" value="2013-07-07 20:30" />
<input type="text" id="txt3" value="" />
<br/><br/>
<input type="button" id="btn" value="计算结果" />


script:

<script>
    window.onload=function(){
        document.getElementById("btn").onclick = function(){
             var   d1 = new Date(  document.getElementById("txt1").value  ),
                      d2 = new Date(  document.getElementById("txt2").value  );
             alert((Math.abs(d1-d2)/(1000*60*60)).toFixed(1));
        }
    }
</script>

追问

能不能在移除光标的时候,让他自动计算,不需要按钮的,或者说不需要按按钮就能计算的

追答<script>
    window.onload=function(){
        document.getElementById("txt2").onblur= function(){
             var   d1 = new Date(  document.getElementById("txt1").value  ),
                      d2 = new Date(  this.value  );
             alert((Math.abs(d1-d2)/(1000*60*60)).toFixed(1));
        }
    }
</script>

追问

如何把计算的值放在第三个文本框,而不需要跳出弹框

追答<script>
    window.onload=function(){
        document.getElementById("txt2").onblur= function(){
             var   d1 = new Date(  document.getElementById("txt1").value  ),
                      d2 = new Date(  this.value  );
             document.getElementById("txt3").value=(Math.abs(d1-d2)/(1000*60*60)).toFixed(1);
        }
    }
</script>

满意么?

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-10-23
用失去焦点事件onblur,如:function ckeck(){}//这里写计算时间差
html绑定事件:<input id='b' type='text' onblur='check()'/>
计算时间差就是计算两个时间相差毫秒数,如:
var num=Date.parse('2013-07-07 20:30')-Date.parse('2013-07-07 18:00');//相差毫秒数
var miao=num/1000;//相差秒数
var fen=miao/60;//相差分钟
第2个回答  2013-09-24
将a和b的值转化成Date类型,例如:

var a = new Date();
a.setHours(20);
a.setMinutes(0);
a.setSeconds(0);
a.setMilliseconds(0);

var b = new Date();
b.setHours(22);
b.setMinutes(30);
b.setSeconds(0);
b.setMilliseconds(0);

然后

var s = b.getTime() - a.getTime();

console.log((s/(1000*60*60)).toFixed(2));
第3个回答  2013-09-24
var a = document.getElementById('a').value;
var b = document.getElementById('b').value;
var c = a-b;
document.getElementById('c').value=c;追问

写在哪呢 用 function ,还是直接写在语句中

相似回答