时间控件
http://www.my97.net/dp/demo/
至于第2个问题,你自己写吧
给你个参考
http://zpw218923.blog.163.com/blog/static/986192320085201952415/

解决方案 »

  1.   

    JS比较两个日期格式的大小 
    if(document.all.TextBoxTimeStart.value!=""&&document.all.TextBoxTimeEnd.value!="")
    {
                    var checkStartDate = document.all.TextBoxTimeStart.value;  
                    var checkEndDate = document.all.TextBoxTimeEnd.value;  
                    //alert(checkStartDate+'--'+checkEndDate);
                    var arys= new Array();  
                    var startdate=new Date(arys[0],parseInt(arys[1]-1),arys[2]);   
                    if(checkStartDate != null && checkEndDate != null) 
                    {  
                        arys=checkStartDate.split('-');  
                        var startdate=new Date(arys[0],parseInt(arys[1]-1),arys[2]);   
                        arys=checkEndDate.split('-');  
                        var checkEndDate=new Date(arys[0],parseInt(arys[1]-1),arys[2]);   
                        if(startdate > checkEndDate) 
                        {  
                          alert("日期开始时间大于结束时间!");  
                          return false;  
                        }
                     }
      

  2.   

    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>新建网页 1</title>
    </head><body>
    <div id=time>
    <input value="2009-03-14 09:00">
    <input value="2009-03-15 09:10">
    <input value="2009-03-16 09:20">
    <input value="2009-03-17 09:30">
    <input value="">
    <input value="">
    </div>
    <script language="javascript">
    <!--
    onload=function(){//设定事件
    var obj=document.getElementById("time").getElementsByTagName("input");
    for (var i=0;i<4;i++)
    obj[i].onblur=function(){showTime(obj)}
    }
    function showTime(obj){//显示时间差
    if (obj[0].value!="" && obj[1].value!="") obj[4].value=getTime(obj[0].value,obj[1].value)
    else obj[4].value=""
    if (obj[2].value!="" && obj[3].value!="") obj[5].value=getTime(obj[2].value,obj[3].value)
    else obj[5].value=""
    }
    function getTime(v1,v2){//计算时间差
    var t1=v1.split(" ")
    var t2=v2.split(" ")
    var tt1=t1[0].split("-")
    var tt2=t2[0].split("-")
    t1=tt1[1]+"/"+tt1[2]+"/"+tt1[0]+" "+t1[1];//转化为标准时间格式(月/日/年 时:分:秒)
    t2=tt2[1]+"/"+tt2[2]+"/"+tt2[0]+" "+t2[1];//转化为标准时间格式(月/日/年 时:分:秒)
    //var addm=Math.floor((Date.parse(t2)-Date.parse(t1))/1000/60);//时间差(单位:分钟)不足1分钟不计
    var addm=Math.ceil((Date.parse(t2)-Date.parse(t1))/1000/60);//时间差(单位:分钟)不足1分钟按1分钟计
    var d=Math.floor(addm/60/24)
    var m=addm-d*60*24
    return d+"天"+m+"分钟"//返回制定格式时间
    }
    //-->
    </script>
    </body></html>
      

  3.   

      <td><div>客户报障时间</div></td>
            <td><input type="text" name="khbztime" onFocus="WdatePicker({startDate:'%y-%M-%d 00:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true})"/></td>  //调用My97DatePicker4.0 日期控件取得日期时间
          </tr>
          <tr>
            <td><div>到达现场时间</div></td>
            <td><input type="text" name="ddtime" onFocus="WdatePicker({startDate:'%y-%M-%d 00:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true})" onblur="getvalue()"/></td>
            <td class="index"><div align="left">故障恢复时间</div></td>
            <td><input type="text" name="gzhftime"  onFocus="WdatePicker({startDate:'%y-%M-%d 00:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true})"/></td>
            <td><div>响应时长</div></td>
            <td><input type="text" name="xytime"/></td>  //到达现在时间 减去 客户报障时间  ??如何自动运算得到结果
            <td><div>修复时长</div></td>
            <td><input type="text" name="xftime"/></td>  //故障修复时间 减去 到达现在时间   ??如何自动运算得到结果
          </tr>
          <tr>
            <td><div align="left">故障累计时间</div></td>
            <td><input type="text" name="ljtime"/></td>  //到达现在时间 减去 客户报障时间   ??如何自动运算得到结果
      

  4.   

    <table border="1" width="100%" id="time">
    <tr> 
    <td> <div>客户报障时间 </div> </td> 
    <td> <input type="text" name="khbztime" onFocus="WdatePicker({startDate:'%y-%M-%d 00:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true})" value="2009-03-14 09:00"/> </td>  //调用My97DatePicker4.0 日期控件取得日期时间 
    </tr> <tr> 
        <td> <div>到达现场时间 </div> </td> 
        <td> <input type="text" name="ddtime" onFocus="WdatePicker({startDate:'%y-%M-%d 00:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true})" value="2009-03-15 09:10"/> </td> 
    </tr> <tr> 
        <td class="index"> <div align="left">故障恢复时间 </div> </td> 
        <td> <input type="text" name="gzhftime"  onFocus="WdatePicker({startDate:'%y-%M-%d 00:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true})" value="2009-03-16 09:20"/> </td> 
    </tr> <tr> 
        <td> <div>响应时长(到达现场时间 减去 客户报障时间 ) </div> </td> 
        <td> <input type="text" name="xytime"/> </td> 
    </tr> <tr> 
        <td> <div>修复时长(故障修复时间 减去 到达现场时间) </div> </td> 
        <td> <input type="text" name="xftime"/> </td>
    </tr> <tr> 
        <td> <div align="left">故障累计时间(故障修复时间 减去 客户报障时间) </div> </td> 
        <td> <input type="text" name="ljtime"/> </td>
    </tr>
    </table> 
    <script language="javascript">
    <!--
    function WdatePicker(){}
    onload=function(){//设定事件
    var obj=document.getElementById("time").getElementsByTagName("input");
    for (var i=0;i<3;i++)
    obj[i].onblur=function(){showTime(obj)}
    }
    function showTime(obj){//显示时间差
    if (obj[0].value!="" && obj[1].value!="") obj[3].value=getTime(obj[0].value,obj[1].value)
    else obj[4].value=""
    if (obj[1].value!="" && obj[2].value!="") obj[4].value=getTime(obj[1].value,obj[2].value)
    else obj[5].value=""
    if (obj[0].value!="" && obj[2].value!="") obj[5].value=getTime(obj[0].value,obj[2].value)
    else obj[5].value=""
    }
    function getTime(v1,v2){//计算时间差
    var t1=v1.split(" ")
    var t2=v2.split(" ")
    var tt1=t1[0].split("-")
    var tt2=t2[0].split("-")
    t1=tt1[1]+"/"+tt1[2]+"/"+tt1[0]+" "+t1[1];//转化为标准时间格式(月/日/年 时:分:秒)
    t2=tt2[1]+"/"+tt2[2]+"/"+tt2[0]+" "+t2[1];//转化为标准时间格式(月/日/年 时:分:秒)
    //var addm=Math.floor((Date.parse(t2)-Date.parse(t1))/1000/60);//时间差(单位:分钟)不足1分钟不计
    var addm=Math.ceil((Date.parse(t2)-Date.parse(t1))/1000/60);//时间差(单位:分钟)不足1分钟按1分钟计
    var d=Math.floor(addm/60/24)
    var m=addm-d*60*24
    return d+"天"+m+"分钟"//返回制定格式时间
    }
    //-->
    </script>
      

  5.   

    谢谢 caiying2009  回答~经测试都通过,但发现1.如果将返回格式为:**天**小时**分钟 如何?2.测试发现修改之后的日期数据,如果直接点击“提交”,提交之后获取的数据还是没有更新的,几个日期都是关联的,有什么方案可以改进?谢谢~
      

  6.   

    <table border="1" width="100%" id="time">
    <tr> 
        <td> <div>客户报障时间 </div> </td> 
        <td> <input type="text" name="khbztime" onFocus="WdatePicker({startDate:'%y-%M-%d 00:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true})" value="2009-03-14 09:00"/> </td>  //调用My97DatePicker4.0 日期控件取得日期时间 
    </tr> <tr> 
        <td> <div>到达现场时间 </div> </td> 
        <td> <input type="text" name="ddtime" onFocus="WdatePicker({startDate:'%y-%M-%d 00:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true})" value="2009-03-15 10:10"/> </td> 
    </tr> <tr> 
        <td class="index"> <div align="left">故障恢复时间 </div> </td> 
        <td> <input type="text" name="gzhftime"  onFocus="WdatePicker({startDate:'%y-%M-%d 00:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true})" value="2009-03-16 09:20"/> </td> 
    </tr> <tr> 
        <td> <div>响应时长(到达现场时间 减去 客户报障时间 ) </div> </td> 
        <td> <input type="text" name="xytime"/> </td> 
    </tr> <tr> 
        <td> <div>修复时长(故障修复时间 减去 到达现场时间) </div> </td> 
        <td> <input type="text" name="xftime"/> </td>
    </tr> <tr> 
        <td> <div align="left">故障累计时间(故障修复时间 减去 客户报障时间) </div> </td> 
        <td> <input type="text" name="ljtime"/> </td>
    </tr>
    </table> <input type=button value="OK" onclick="showTime()">
    <script language="javascript">
    <!--
    function WdatePicker(){}function showTime(){//显示时间差
    var obj=document.getElementById("time").getElementsByTagName("input");
    if (obj[0].value!="" && obj[1].value!="") obj[3].value=getTime(obj[0].value,obj[1].value)
    else obj[4].value=""
    if (obj[1].value!="" && obj[2].value!="") obj[4].value=getTime(obj[1].value,obj[2].value)
    else obj[5].value=""
    if (obj[0].value!="" && obj[2].value!="") obj[5].value=getTime(obj[0].value,obj[2].value)
    else obj[5].value=""
    }
    function getTime(v1,v2){//计算时间差
    var t1=v1.split(" ")
    var t2=v2.split(" ")
    var tt1=t1[0].split("-")
    var tt2=t2[0].split("-")
    t1=tt1[1]+"/"+tt1[2]+"/"+tt1[0]+" "+t1[1];//转化为标准时间格式(月/日/年 时:分:秒)
    t2=tt2[1]+"/"+tt2[2]+"/"+tt2[0]+" "+t2[1];//转化为标准时间格式(月/日/年 时:分:秒)
    //var addm=Math.floor((Date.parse(t2)-Date.parse(t1))/1000/60);//时间差(单位:分钟)不足1分钟不计
    var addm=Math.ceil((Date.parse(t2)-Date.parse(t1))/1000/60);//时间差(单位:分钟)不足1分钟按1分钟计
    var d=Math.floor(addm/60/24)
    var h=Math.floor((addm-d*60*24)/60)
    var m=addm-d*60*24-h*60
    return d+"天"+h+"小时"+m+"分钟"//返回制定格式时间
    }
    //-->
    </script>