【JavaScript】开工竣工工期计算

随意输入两个第三个就出来了,比如 输入了开工、竣工,会自动出来工期。
注:2016-07-07~2016-07-08是2天。
HTML:

//开工时间
<input type="text" class="form-control laydate-icon" 
                    id="begin_date" name=begin_date">
//竣工时间
<input type="text" class="form-control laydate-icon"        
                    id="end_date" name="end_date">
//工期
<input type="text" class="form-control" id="duration"   
            name="duration" oninput="getRealEndDate()">

JS:

//回显总工期
    $("#end_date").click(function(){
        laydate({
            elem: '#end_date',
            choose: function(datas){ //选择日期完毕的回调
                //拿到计划开工时间
                var BeginDate = $("#begin_date").val();
                if(BeginDate != null && BeginDate != ""){
                    //拿到计划竣工时间
                    var EndDate = $("#end_date").val();
                    //掉用计算日期天数并回显到计划总工期
                    DateDiff(EndDate,BeginDate);
                }
            }
        });
    });
    $("#begin_date").click(function(){
        laydate({
            elem: '#begin_date',
            choose: function(datas){ //选择日期完毕的回调
                //拿到计划竣工时间
                var EndDate = $("#end_date").val();
                if(EndDate != null && EndDate != ""){
                    //拿到计划开工时间
                    var BeginDate = $("#begin_date").val();
                    //掉用计算日期天数并回显到计划总工期
                    DateDiffd(BeginDate,EndDate);
                }
            }
        });
    });
    //计算riqi天数差  
    function  DateDiff(sDate1,  sDate2){    //sDate1和sDate2是2006-12-18格式  
       var  aDate,  oDate1,  oDate2,  iDays  
       aDate  =  sDate1.split("-")  
       oDate1  =  new  Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0])    //转换为12-18-2006格式  
       aDate  =  sDate2.split("-")  
       oDate2  =  new  Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0])  
       iDays  =  parseInt((oDate1  -  oDate2)  /  1000  /  60  /  60  /24) + 1    //把相差的毫秒数转换为天数  
       $('#duration').val(iDays);
    }  
    function  DateDiffd(sDate1,  sDate2){    //sDate1和sDate2是2006-12-18格式  
       var  aDate,  oDate1,  oDate2,  iDays  
       aDate  =  sDate1.split("-")  
       oDate1  =  new  Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0])    //转换为12-18-2006格式  
       aDate  =  sDate2.split("-")  
       oDate2  =  new  Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0])  
       iDays  =  parseInt((oDate2 - oDate1)  /  1000  /  60  /  60  /24) + 1    //把相差的毫秒数转换为天数  
       $('#duration').val(iDays);
    }  
    //显示日历
    $("#begin_date").click(function(){
        laydate(); 
    })
    $("#end_date").click(function(){
        laydate(); 
    })
    //回显竣工时间
    function getEndDate(){
         if(document.getElementById("duration").value!=''){
            //拿到计划开工时间
            var BeginDate = $("#begin_date").val();
            //拿到计划总工期
            var Duration = $("#duration").val();
            //掉用计算日期天数并回显到计划总工期
            getNewDay(BeginDate,Duration);
        } 
    }
    //dateTemp 需要参加计算的日期,days要添加的天数,返回新的日期,日期格式:YYYY-MM-DD
    function getNewDay(dateTemp, days) {
        var dateTemp = dateTemp.split("-");
        var nDate = new Date(dateTemp[1] + '-' + dateTemp[2] + '-' + dateTemp[0]); //转换为MM-DD-YYYY格式  
        var millSeconds = Math.abs(nDate) + (days * 24 * 60 * 60 * 1000);
        var rDate = new Date(millSeconds);
        var year = rDate.getFullYear();
        var month = rDate.getMonth() + 1;
        if (month < 10) month = "0" + month;
            var date = rDate.getDate();
            if (date < 10) date = "0" + date;
            var EndDate = (year + "-" + month + "-" + date);
            $("#end_date").val(EndDate);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值