<script language="javascript" type="text/javascript"> 
String.prototype.trim = function() { 
return this.replace(/(^[\uFEFF|\u00A0|\s]*)|([\uFEFF|\u00A0|\s]*$)/g, ""); 
}; 
function cal() { 
var beginTime = document.getElementById("txtBegintime").value; 
var endTime = document.getElementById("txtEndtime").value; 
if (beginTime.trim() == "" || endTime.trim() == "") { 
return; 
}
var arr1 = beginTime.split("-"); 
var arr2 = endTime.split("-"); var dt1 = new Date(); 
dt1.setFullYear(arr1[0]); 
dt1.setMonth(arr1[1] - 1); 
dt1.setDate(arr1[2]); 
 
var dt2 = new Date(); 
dt2.setFullYear(arr2[0]); 
dt2.setMonth(arr2[1] - 1); 
dt2.setDate(arr2[2]); 
 
var dif = dt2.getTime() - dt1.getTime(); 
var days = dif / (24 * 60 * 60 * 1000); 
document.getElementById("txtSimtime").value = days; 

    </script>
我页面上有这样三个文本框 就是要在第二个文本框输入完时间之后马上在第三个文本框里显示时间差
第一个和第二个我用了一个第三方的日历控件   
大家帮忙看下 我错在哪里  填了之后它老是在第三个里显示 NaN我页面代码是这样的<input type="text" id="txtBegintime" runat="server" onfocus="new WdatePicker(this,'%Y-%M-%D %h:%m',true,'whyGreen')" />
<input type="text" runat="server" id="txtEndtime" onfocus="new WdatePicker(this,'%Y-%M-%D %h:%m',true,'whyGreen')"
                        onblur="cal()" />
<input type="text" runat="server" id="txtSimtime" />

解决方案 »

  1.   

    修改部分见红色<script language="javascript" type="text/javascript"> 
    String.prototype.trim = function() { 
    return this.replace(/(^[\uFEFF|\u00A0|\s]*)|([\uFEFF|\u00A0|\s]*$)/g, ""); 
    }; 
    function cal() { 
    var beginTime = document.getElementById("txtBegintime").value; 
    var endTime = document.getElementById("txtEndtime").value; 
    if (beginTime.trim() == "" || endTime.trim() == "") { 
    return; 
    }
    var arr1 = beginTime.split("-"); 
    var arr2 = endTime.split("-"); var dt1 = new Date(); 
    dt1.setFullYear(arr1[0]); 
    dt1.setMonth(arr1[1] - 1); 
    dt1.setDate(arr1[2].split(" ")[0]); var dt2 = new Date(); 
    dt2.setFullYear(arr2[0]); 
    dt2.setMonth(arr2[1] - 1); 
    dt2.setDate(arr2[2].split(" ")[0]); 
     
    var dif = dt2.getTime() - dt1.getTime(); 
    var days = dif / (24 * 60 * 60 * 1000); 
    document.getElementById("txtSimtime").value = days; 

    </script>
      

  2.   


    <script language="javascript" type="text/javascript"> 
    String.prototype.trim = function() { 
    return this.replace(/(^[\uFEFF|\u00A0|\s]*)|([\uFEFF|\u00A0|\s]*$)/g, ""); 
    }; 
    function cal() { 
    var beginTime = document.getElementById("txtBegintime").value; 
    var endTime = document.getElementById("txtEndtime").value; 
    if (beginTime.trim() == "" || endTime.trim() == "") { 
    return; 

    var arr1 = beginTime.split("-"); 
    var arr2 = endTime.split("-"); var dt1 = new Date(); 
    dt1.setFullYear(arr1[0]); 
    dt1.setMonth(arr1[1] - 1); 
    dt1.setDate(arr1[2].split(" ")[0]); var dt2 = new Date(); 
    dt2.setFullYear(arr2[0]); 
    dt2.setMonth(arr2[1] - 1); 
    dt2.setDate(arr2[2].split(" ")[0]); var dif = dt2.getTime() - dt1.getTime(); 
    var days = dif / (24 * 60 * 60 * 1000); 
    document.getElementById("txtSimtime").value = days; 

    </script>
    <input type="text" id="txtBegintime" runat="server" onfocus="new WdatePicker(this,'%Y-%M-%D %h:%m',true,'whyGreen')" />
    <input type="text" runat="server" id="txtEndtime" onfocus="new WdatePicker(this,'%Y-%M-%D %h:%m',true,'whyGreen')"
                            onblur="cal()" />
    <input type="text" runat="server" id="txtSimtime" />