天天看点

html 年-月-周 视图

效果
html 年-月-周 视图
源码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<div>
    <div style="float: left;">
        时间周期
        <select id="changeMonthOrWeek" name="changeMonthOrWeek" class="" style="padding-left: 10px; ">
            <option value="1">月</option>
            <option value="2">周</option>
        </select>:
        <select id="startYear" class="year-crm"></select>
        <select id="startMonth" class=" month-crm"></select>
    </div>
    <div id="changeMonthDiv" style="float: left;">
        <span style="padding: 0px 10px">至</span>
        <select id="endYear" class="year-crm"></select>
        <select id="endMonth" class="month-crm"></select>
    </div>
    <div id="changeWeekDiv" style="display: none;">
        <select id="startEndDay" class="week-crm"></select>
    </div>
</div>
</body>
<script src="js/jquery.min.js"></script>
<script>
    //展示周
    function weekShow(id,df,dv) {
        $(id).html("");
        $(id).append("<option value=''>--------------周--------------</option>");
        if(df){
            var data = weekCount(dv)
            for(var i =;i<data.length;i++){
                var v = data[i].timesStart+"~"+data[i].timesEnd;
                $(id).append("<option value='"+v+"'>"+v+"</option>");
            }
        }
    }
    weekShow("#startEndDay",true);
    $("#changeMonthOrWeek").change(function () {
       var val = this.value;
       if(val==){
           $("#changeWeekDiv").hide();
           $("#changeMonthDiv").show();
           monthShow(".month-crm");
           yearsShow(".year-crm",);
       }
        if(val==){
            $("#changeWeekDiv").show();
            $("#changeMonthDiv").hide();
            monthShow("#startMonth");
            yearsShow("#startYear",);
            weekShow("#startEndDay");
        }
    });
    //周视图改变的时候
    $("#startYear").change(function () {
        var val = $("#changeMonthOrWeek").val();
        var startMonth = $("#startMonth").val();
        if(val==&&startMonth!=""){
            weekShow("#startEndDay",true,this.value+"-"+startMonth);
        }
    });
    //周视图改变的时候
    $("#startMonth").change(function () {
        var val = $("#changeMonthOrWeek").val();
        var startYear = $("#startYear").val();
        if(val==&&startYear!=""){
            weekShow("#startEndDay",true,startYear+"-"+this.value);
        }
    });
    //一个月的周区间
    function weekCount(df) {
        var date=new Date;
        if(df){
            date = new Date(df);
        }
        var dateTemp = date;
        dateTemp.setDate();
        var intWeek = dateTemp.getDay();
        var dateStartDay,dateEndDay;
        var lastDay = new Date(date.getFullYear(), date.getMonth() + , );
        // console.log(lastDay)
        var timesStart,timesEnd;
        var arr = [];
        dateStartDay = new Date(dateTemp);
        dateStartDay.setDate(dateStartDay.getDate()-(intWeek-==-?:intWeek-));
        timesStart = dateStartDay.getFullYear()+"-"+dateToolAddZero(dateStartDay.getMonth()+)+"-"+dateToolAddZero(dateStartDay.getDate());
        dateEndDay = new Date(timesStart);
        dateEndDay.setDate(dateEndDay.getDate()+);
        timesEnd = dateEndDay.getFullYear()+"-"+dateToolAddZero(dateEndDay.getMonth()+)+"-"+dateToolAddZero(dateEndDay.getDate());
        arr.push({"timesStart":timesStart,"timesEnd":timesEnd});
        var loop = true;
        var index = ;
        while (loop){
            var dateStartDay2 = new Date(timesEnd);
            dateStartDay2.setDate(dateStartDay2.getDate()+);
            var timesStart = dateStartDay2.getFullYear()+"-"+dateToolAddZero(dateStartDay2.getMonth()+)+"-"+dateToolAddZero(dateStartDay2.getDate());
            var dateEndDay2 = new Date(timesStart);
            dateEndDay2.setDate(dateEndDay2.getDate()+);
            timesEnd = dateEndDay2.getFullYear()+"-"+dateToolAddZero(dateEndDay2.getMonth()+)+"-"+dateToolAddZero(dateEndDay2.getDate());
            if(lastDay.getDay()==){
                var tempDate = new Date(timesEnd);
                tempDate = new Date(dateStartDay2.getFullYear(), dateStartDay2.getMonth());
                if(tempDate>=lastDay){
                    loop=false;
                    break;
                }
            }else {
                var tempDate = new Date(timesEnd);
                tempDate = new Date(dateStartDay2.getFullYear(), dateStartDay2.getMonth());
                if(tempDate>lastDay){
                    loop=false;
                    break;
                }
            }
            arr.push({"timesStart":timesStart,"timesEnd":timesEnd});
            index++;
            if(index>){
                loop=false;
                break;
            }
        }
        // console.log(arr);
        return arr;
    }
    function dateToolAddZero(num){
        return num<?'0'+num:num;
    }
    // weekCount('2008-2');
    // weekCount('2018-1');
    // weekCount('2018-4');
    // weekCount('2017-12');
    // weekCount('2018-12');
    // weekCount('2019-1');
    //年份展示
    function yearsShow(id,time,df) {
        $(id).html("");
        $(id).append("<option value=''>--年--</option>");
        var date=new Date;
        var year=date.getFullYear();
        var month=date.getMonth()+;
        var len = ;
        if(time){
            len = time;
        }
        for (var i=year;i>=len;i--){
            $(id).append("<option value='"+i+"'>"+i+"</option>");
        }
        if(df){
            $(id).val(year)
        }
    }
    //月份展示
    function monthShow(id,df) {
        $(id).html("");
        $(id).append("<option value=''>--月--</option>");
        var date=new Date;
        var month=date.getMonth()+;
        for (var i=;i<=;i++){
            var v = i<?('0'+i):i;
            $(id).append("<option value='"+v+"'>"+i+"</option>");
        }
        if(df){
            $(id).val(month<?('0'+month):month);
        }
    }
    monthShow(".month-crm",true);
    yearsShow(".year-crm",,true);
</script>
</html>