js calculated starting from the 1st of a month, a total of a few weeks across

The first renderings

jsp month selection

<input name="sdate" id="sdate"   class="layui-input"  lay-key="17" type="text" />

Cascade week

<select name="edate" id="edate" lay-filter="edateFilter"></select>

$(function () {
            initSelect(getInfo('<%=sdate %>'));

            laydate.render ({
                    elem: '#sdate',
                    type: 'month The', Change: function (value, DATE, endDate) {// reset when the month selected circumferential drop-down box
                        . $ ( '# sdate') val ( value);
                        $ ( '# layui-laydate17') remove ();. // delete
                        initSelect (getInfo (value));
                    }
                });

});

function initSelect(array){
            layui.use(['form' ], function() {
                var form=layui.form;
               $('#edate').empty();
            for(var j=0;j<array.length;j++){
                   var obj = array[j];
                   var flag = isDateBetween('<%=edate %>',obj.from,obj.to);
                   var ss = '<option value="' +obj.from+'=='+obj.to + '"';
                   if(flag){
                       ss += ' selected ';
                       curr1 = obj.from; curr2 = obj.to; 
                   }
                   ss += ' >'+ formatName(j,obj.from,obj.to)+ '</option>';
                       $ ( '# eDate). Appendix (ss);
               }
            Form.render ( 'SELECT');
            });
       }
       / ** 
     * Dates determining returns true in an interval within the interval, otherwise returns to false 
     * @param dateString date string 
     * @param startDateString interval start date string 
     * @param endDateString interval end date string 
     * Number The @Returns {} 
     * /  
    function isDateBetween (dateString, startDateString, endDateString) {  
        IF (isEmpty (dateString)) {  
            Alert ( "dateString not empty");  
            return;  
        }  
        IF ( isEmpty (startDateString)) {  
            Alert ( "startDateString not empty");  
            return;  
        }  
        if(isEmpty(endDateString)){  
            alert("endDateString不能为空");  
            return;  
        }  
        var flag = false;  
        var startFlag = (dateCompare(dateString, startDateString) < 1);  
        var endFlag = (dateCompare(dateString, endDateString) > -1);  
        if(startFlag && endFlag){  
            flag = true;  
        }  
        return flag;  
    };  
    function dateCompare(dateString, compareDateString){  
        if(isEmpty(dateString)){  
            alert("dateString不能为空");  
            return;  
        }  
        if(isEmpty(compareDateString)){  
            alert("compareDateString不能为空");  
            return;  
        }  
        var dateTime = dateParse(dateString).getTime();  
        var compareDateTime = dateParse(compareDateString).getTime();  
        if(compareDateTime > dateTime){  
            return 1;  
        }else if(compareDateTime == dateTime){  
            return 0;  
        }else{  
            return -1;  
        }  
    };  
    function dateParse(dateString){  
        var SEPARATOR_BAR = "-";  
        var SEPARATOR_SLASH = "/";  
        var SEPARATOR_DOT = ".";  
        var dateArray;  
        if(dateString.indexOf(SEPARATOR_BAR) > -1){  
            dateArray = dateString.split(SEPARATOR_BAR);    
        }else if(dateString.indexOf(SEPARATOR_SLASH) > -1){  
            dateArray = dateString.split(SEPARATOR_SLASH);  
        }else{  
            dateArray = dateString.split(SEPARATOR_DOT);  
        }  
        return new Date(dateArray[0], dateArray[1]-1, dateArray[2]);   
    };  
       function formatName(val,from,to){
           var str = '第';
           if(val == 0){ str += '一';
           }else if(val == 1){ str += '二';
           }else if(val == 2){ str += '三';
           }else if(val == 3){ str += '四';
           }else if(val == 4){ str += '五';
           }else if(val == 5){ str += '六';
           }else if(val == 6){str += '七'; }
           str += '周(';
           var fromDate = new Date(from);
        str += (fromDate.getMonth() + 1) + '月' + fromDate.getDate()+'日';
        str += ' - ';
        var toDate = new Date(to);
        str += (toDate.getMonth() + 1) + '月' + toDate.getDate()+'日';
           str += ')';
           return str;
       }
       function getInfo(val) {
           var array = new Array();
           var year = parseInt(val.split('-')[0],10), 
               month = parseInt(val.split('-')[1],10);
           var d = new Date();
           d.setFullYear(year, month-1, 1);
           var w1 = d.getDay();
           if (w1 == 0) w1 = 7;
           d.setFullYear(year, month, 0);
           var dd = d.getDate();
           if (w1 != 1) d1 = 7 - w1 + 2;
           else d1 = 1;
           week_count = Math.ceil((dd-d1+1)/7);
           for (var i = 0; i < week_count; i++) {
               var monday = d1+i*7;
               var sunday = monday + 6;
               var from = year+'-'+formatD(month)+'-'+formatD(monday);
               var to = '';
               if (sunday <= dd) {
                   = + year to '-' + formatD (month The) + '-' + formatD (Sunday);
               } the else {
                   d.setFullYear (year, month The-. 1, Sunday);
                   to d.getFullYear = () + '-' + formatD (d.getMonth () + 1) + '-' + formatD (d.getDate ());
               }
                iF (I == 0) {// first cycle when determining whether the first Monday 1 if not coupled Kuayue number 1 comprises circumferential
                    var = from.split Data ( '-');
                    var mm new new = a Date ();
                      mm.setFullYear (Data [0], Data [1] -1, Data [ 2]);
                      var mm.getDate A = ();
                    IF (A>. 1) {// not a number. 1
                          var new new B = a Date (); 
                          B.setFullYear (Data [0], Data [. 1] -1,A-1);
                          var t = GetDay(B);
                          var f = GetMonday(B);
                        var obj = new Object();
                        obj.from = f; obj.to = t;
                     array.push(obj);
                    }
                }
                var obj = new Object();
                obj.from = from; obj.to = to;
                array.push(obj);
           }
           return array;
    }
       
       function formatD(val){
           var dd = parseInt(val,10);
           if(dd < 10){
               return '0'+dd;
           }else{
               return dd+'';
           }
       }
       Function GetMonday (dd) {
           var dd.getDay Week = (); // week number acquisition time
           var minus Week Week = -. 1:?. 6;
           dd.setDate (dd.getDate () - minus); // acquisition date minus days before
           var dd.getFullYear Y = ();
           var dd.getMonth m = () +. 1; // Get month
           IF (m <10) m = '0' + m; 
           var D = dd.getDate ();
           IF (D <10) D = '0' + D;
           return Y + '-' + m + '-' + D;
       }
       function GetDay (dd) {
            var dd.getFullYear Y = ();
        var m = dd.getMonth () + 1; // Get month
        IF (m <10) m = '0' + m; 
        var dd = D.getDate();
        if(d < 10) d = '0' + d;
        return y + '-' + m + '-' + d;
       }

 

Guess you like

Origin blog.csdn.net/zhu_nana/article/details/82620517