js中的小案例(一)

效果图:

html代码:

        <div id="date">
            <p>
                <span id="prev">上一月</span>
                <span id="year">2022</span>
                <span id="next">下一月</span>
            </p>
            <h5 id="month">七月</h5>
            <ul id="title">
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
            </ul>
            <ul id="days"></ul>
        </div>            

css代码:

        *{
                margin: 0px;
                padding: 0px;
            }
            #date{
                width: 300px;
                padding: 10px;
                border: 1px solid #000000;
            }
            #date>p{
                display: flex;
            }
            #date>p>span{
                display: inline-block;
                width: 100px;
                text-align: center;
            }
            #month{
                text-align: center;
                font-weight: 400;
            }
            #title{
                list-style: none;
                display: flex;
                width: 300px;
                padding: 0;
                margin: 0;
                
            }
            #title>li{
                flex: 1;
                text-align: center;
                width: 100%;
                background: #C0C0C0;
            }
            #days{
                height: 250px;
                margin-top: 10px;
            }
            
            #days>li{
                list-style: none;
                text-align: center;
                float: left;
                width: 42.28px;
                height: 42.28px;
            }
            .active{
                color:orange;
            }                

javascript代码:

    let date=new Date();
        add();
        function add(){
            
            let year=date.getFullYear()
            document.getElementById("year").innerText=year
            let month=date.getMonth();
            let monthArr=["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"];
            document.getElementById("month").innerText=monthArr[month];
            // 获取当天的天数
            let currentDay=date.getDate()
            // 获取每个月的第一天是周几
            let week=new Date(year,month,1).getDay();
            let html=""    
            // 代表前面空白的li标签        
            for(var i=0;i<week;i++){
                console.log(i)
                html+="<li></li>"
            }
            // 获取每个月的天数的最后一天
            let lastDay=new Date(year,month+1,0).getDate()    
            for(var i=1;i<=lastDay;i++){
                if(i==currentDay){
                    html+=`<li class="active">${i}</li>`
                }else{
                    html+=`<li>${i}</li>`
                }
            }
            document.getElementById("days").innerHTML=html
        }
        document.getElementById("prev").onclick=function(){
            date.setMonth(date.getMonth()-1)
            add();
        }
        document.getElementById("next").onclick=function(){
            date.setMonth(date.getMonth()+1)
            add();
        }

关键代码是

new Date(year,month,1).getDay()  获取每个月的第一个天是星期几

new Date(year,month+1,0).getDate()  获取每个月的最后一天是几号

原文地址:https://www.cnblogs.com/shanchui/p/12812516.html