[ JavaScript Date对象 ] 如何做一个日历?

Date对象 日历实例

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>日历</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
       #main{
            width: 280px;
            border: 1px solid #424242;
            margin: 20px auto;
       } 
       #main > p{
            display: flex;
            justify-content : space-between;
       }
       #main > h5{
            text-align: center;
       }
       #main > p > span{
            padding: 0 10px;
       }
       #prev,#next{
            cursor: pointer;
       }
       #title{
            overflow: hidden;
            list-style: none;
            background-color: #ccc ;
       }
       #title > li{
            float: left;
            width: 40px;
            height: 26px;
            line-height: 26px;
            text-align: center;
       }
       #mainDate{
            overflow: hidden;
            list-style: none;
       }
       #mainDate > li{
            float: left;
            width: 40px;
            height: 40px;
            border: 2px solid #fff;
            box-sizing: border-box;
            line-height: 40px;
            text-align: center;
            cursor: pointer;
       }
       #mainDate .bkgred:hover{
            background-color: #ccc;
       }
       .red{
           color:red;
       }
    </style>
</head>
<body>
    <div id="main">
        <p>
            <span id="prev">上一月</span>
            <span id="year"></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="mainDate">
        </ul>
    </div>
    <script>
        var date = new Date();
        add();
        function add(){
            //获取当前年份
            var currentYear = date.getFullYear();
            var year = document.getElementById('year');
            year.innerHTML = currentYear;
            //获取当前月份
            var currentMonth = date.getMonth();
            var month = document.getElementById('month');//0-11
            var arrMonth = ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'];
            month.innerHTML = arrMonth[currentMonth];
            //获取每个月第一天是星期几0-6
            var week = new Date(currentYear,currentMonth,1).getDay();
            //获取每个月第一天的前一天是几号
            var days = new Date(currentYear,currentMonth+1,-1).getDate()+1;
            //设置html页面
            var html = '';
            var mainDate = document.getElementById('mainDate');
            for(var i = 0;i < week;i++){
                html += '<li></li>';
            }
            //获取今天的日期1-31
            var currentDay = date.getDate();
            for(var i = 1;i <= days;i++){
                if(i == currentDay)
                {
                html += '<li class="red">' + i +'</li>';
                }else{
                html += '<li class="bkgred">' + i +'</li>';
                }
            }
            mainDate.innerHTML = html;
        } 
        var prev = document.getElementById('prev');
        var next = document.getElementById('next'); 
        prev.onclick = function(){
            date.setMonth(date.getMonth()-1);
            add();
        }
        next.onclick = function(){
            date.setMonth(date.getMonth()+1);
            add();
        }
    </script>
</body>
</html>

在这里插入图片描述

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的 JavaScript 日历代码: ```html <!DOCTYPE html> <html> <head> <title>JavaScript 日历</title> </head> <body> <h1>JavaScript 日历</h1> <div id="calendar"></div> <script> // 获取当前日期 var today = new Date(); // 获取当前年份和月份 var currentMonth = today.getMonth(); var currentYear = today.getFullYear(); // 获取每个月的天数 function daysInMonth(month, year) { return new Date(year, month + 1, 0).getDate(); } // 获取每个月的第一天是周几 function firstDayOfMonth(month, year) { return new Date(year, month, 1).getDay(); } // 创建日历表格 function createCalendar(month, year) { var calendar = document.getElementById("calendar"); // 清空日历表格 calendar.innerHTML = ""; // 创建表头 var table = document.createElement("table"); var headerRow = document.createElement("tr"); var months = [ "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月", ]; var headerCell = document.createElement("th"); headerCell.setAttribute("colspan", "7"); headerCell.textContent = months[month] + " " + year; headerRow.appendChild(headerCell); table.appendChild(headerRow); // 创建星期几表头 var weekdays = ["日", "一", "二", "三", "四", "五", "六"]; var weekdayRow = document.createElement("tr"); for (var i = 0; i < weekdays.length; i++) { var weekdayCell = document.createElement("th"); weekdayCell.textContent = weekdays[i]; weekdayRow.appendChild(weekdayCell); } table.appendChild(weekdayRow); // 创建日期表格 var daysInCurrentMonth = daysInMonth(month, year); var firstDay = firstDayOfMonth(month, year); var currentDay = 1; var currentRow = document.createElement("tr"); for (var i = 0; i < firstDay; i++) { var emptyCell = document.createElement("td"); currentRow.appendChild(emptyCell); } while (currentDay <= daysInCurrentMonth) { var cell = document.createElement("td"); cell.textContent = currentDay; currentRow.appendChild(cell); if ((currentDay + firstDay) % 7 === 0) { table.appendChild(currentRow); currentRow = document.createElement("tr"); } currentDay++; } while (currentRow.children.length < 7) { var emptyCell = document.createElement("td"); currentRow.appendChild(emptyCell); } table.appendChild(currentRow); // 添加日历表格到页面 calendar.appendChild(table); } // 初始化日历 createCalendar(currentMonth, currentYear); </script> </body> </html> ``` 这个代码会创建一个包含当前月份的日历,并在页面上显示出来。你可以根据需要对其进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值