datetimebox输入开始结束日期,JS计算天数并赋值

    xiaoxiao2021-03-25  62

    1.要求:当输入完开始和结束日期时,自动计算差值,并赋值。

    2. html:

    开始日期:<input name="START_TIME"    id="START_TIME"    exttype="datetime"    class="easyui-datetimebox"    data-options="formatter:formatterDateTime,onChange:getTime" value=""/>

    结束日期:<input name="END_TIME" id="END_TIME"    exttype="datetime"    class="easyui-datetimebox"    data-options="formatter:formatterDateTime,onChange:getTime"/>           

    缺勤天数:<input name="ABSENCE_Days"   id="ABSENCE_Days"    value=""/>

    3. JS:

    //开始和结束时间触发的是同一个onChange()事件

    function getTime(){

    //获取开始和结束日期的值   

        var startTime = $("#START_TIME").datetimebox('getValue');

        var endTime = $("#END_TIME").datetimebox('getValue');

    //定义整数和小数部分

        var day_point;

        var day_display;

    //判断:如果某一个为空,则给天数赋值为空,否则进行计算

        if(startTime=="" || endTime==""){         $("#ABSENCE_Days").val("");     }else{

    //格式化日期         var st = new Date(startTime);         var et = new Date(endTime);

    //计算时间差并转换为天数         var time = et.getTime()-st.getTime();          var days = parseFloat(time / (24 * 60 * 60 * 1000));         

    //计算是否加0.5天          var days_int=Math.floor(days);         var days_float=days*24$;//单位:h *24*1000         //days_float=days_float;         var str="";                           if(days_float==0){           $("#ABSENCE_Days").val(String(days_int));                  }else if(0<days_float && days_float<=4){           $("#ABSENCE_Days").val(String(days_int)+".5");         }else{           $("#ABSENCE_Days").val(String(days_int+1));           }     }  }

    4.结语:关键在于开始和结束的日期控件都应该触发同一个onchange事件,方才能获取到他们的值并计算,计算是否为半天关键在于小数部分是否在0到4之间,然后判断。

    转载请注明原文地址: https://ju.6miu.com/read-38678.html

    最新回复(0)