溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

兩個日期類型相減

發布時間:2020-05-13 21:10:04 來源:網絡 閱讀:511 作者:張靜靜 欄目:編程語言
//在公司中用到根據長時間類型請假的情況,根據時間的開始日期好結束日期來批量生成時間段的請假單;
//-------------日期信息---------------------
wisdom.dateDiff = function(strInterval, dtStart, dtEnd)
{
    if (typeof dtEnd == 'string' )//如果是字符串轉換為日期型
    {
        dtEnd = wisdom.stringToDate(dtEnd);
    }
    if(typeof dtStart == 'string')
    {
        dtStart = wisdom.stringToDate(dtStart);
    }
    switch (strInterval) {
    case 's' :return parseInt((dtEnd - dtStart) / 1000);
    case 'n' :return parseInt((dtEnd - dtStart) / 60000);
    case 'h' :return parseInt((dtEnd - dtStart) / 3600000);
    case 'd' :return parseInt((dtEnd - dtStart) / 86400000);
    case 'w' :return parseInt((dtEnd - dtStart) / (86400000 * 7));
    case 'm' :return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1);
    case 'y' :return dtEnd.getFullYear() - dtStart.getFullYear();
    }
}
wisdom.stringToDate = function(DateStr, format) {
    if (DateStr instanceof Date) {
        return DateStr;
    }
    var converted = Date.parse(DateStr);
    var myDate = new Date(converted);
    if (isNaN(myDate)) {
        if (DateStr.indexOf(':') > 0 || (!wisdom.isEmpty(format) && format.toLowerCase().indexOf("h") > -1)) {
            var two = DateStr.split(' ');
            if (two.length != 2) {
                two = DateStr.split('T');
            }
            var nowDate = new Date();
            if (two.length == 1) {
                var tempValue = new Array();
                tempValue.push(nowDate.toString("yyyy-MM-dd"));
                tempValue.push(two[0]);
                two = tempValue;
            }
            if (two.length != 2) {
                return nowDate;
            }
            var d = two[0].split('-');
            var t = two[1].replace("Z", "").split(':');
            if (t.length == 3) {
                myDate = new Date(d[0], --d[1], d[2], t[0], t[1], t[2]);
            }
            else if (t.length == 2) {
                myDate = new Date(d[0], --d[1], d[2], t[0], t[1], "00");
            }
            else if (t.length == 1) {
                myDate = new Date(d[0], --d[1], d[2], t[0], "00", "00");
            }
            else if (t.length == 1) {
                myDate = new Date(d[0], --d[1], d[2], "00", "00", "00");
            }
        }
        else {
            var arys = DateStr.split('-');
            switch (arys.length) {
                case 1:
                //導致月份無法選,先注釋掉
//                    var reg = /^([1-9]\d*)$/; //校驗是否為正整數
//                    if (!reg.test(arys[0])) {
//                        return null;
//                    }
                    if (!wisdom.isEmpty(format)) {
                        var dn = new Date();
                        if (format.indexOf("y") > -1) {
                            myDate = new Date(arys[0], 0, "01");
                        } else if (format.indexOf("M") > -1) {
                            myDate = new Date(dn.getYear(), --arys[0], "01");
                        } else if (format.toLowerCase().indexOf("h") > -1) {
                            myDate = new Date(dn.getYear(), dn.getMonth(), dn.getDate(), arys[0], "00", "00");
                        } else if (format.indexOf("m") > -1) {
                            myDate = new Date(dn.getYear(), dn.getMonth(), dn.getDate(), "00", arys[0], "00");
                        } else if (format.toLowerCase().indexOf("s") > -1) {
                            myDate = new Date(dn.getYear(), dn.getMonth(), dn.getDate(), "00", "00", arys[0]);
                        }
                    }
                    break;
                case 2:
                    if (utils.CheckIsDate(DateStr + "-01")) {
                        myDate = new Date(arys[0], --arys[1], "01");
                    }
                    else {
                        return null;
                    }
                    break;
                default:
                    if (utils.CheckIsDate(DateStr)) {
                        myDate = new Date(arys[0], --arys[1], arys[2]);
                    }
                    else {
                        return null;
                    }
                    break;
            }
            //            myDate = new Date(arys[0], --arys[1], arys[2]);
        }
    }
    return myDate;
}
leavetye請假類型的code值;leavename請假類型的中文名稱,starttime請假開始時間,endtime請假結束時間
 function LongLeaveTypeAdd(leavetype,leavename,starttime,endtime)
            {
                 var entity = <%=wgLeave.StrClientOprDetailName %>;
                 var detaillst=<%= WgLeaveDetailDet.StrClientOprEntityList %>;
                 var objlst=detaillst;
                 //算出開始日期與結束日期中間差的天數;
                 var leaveday=wisdom.dateDiff('d',starttime,endtime);
                 if(leaveday!=null&&leaveday>0)
                 {
                   for(var i=0;i<leaveday;i++)
                   {
                         var d1=wisdom.stringToDate(starttime);
                         var d2 = d1;
                         d2.setDate(d1.getDate()+(i+1));//相差天數累加獲得當前天數
                         var ojb=new Object();
                         ojb.leaveAppType_cnName=leavename;
                         ojb.leaveAppType=leavetype;
                         ojb.appStartDate=d2;
                         ojb.appStartLabel_cnName="全天";
                         ojb.appStartLabel="03";
                         objlst.push(ojb);
                   } 
                 }
                 <%=WgLeaveDetailDet.StrClientRebindData %>(objArrClone(objlst));//重綁grid
             }
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女