简易日历是一种用于显示日期和时间的用户界面组件。它通常包括年、月、日的选择以及日期的展示。在前端开发中,日历组件常用于用户选择日期的场景,如预约、订单提交等。
以下是一个简单的JavaScript日历实现示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>简易日历</title>
<style>
.calendar {
width: 300px;
border: 1px solid #ccc;
padding: 10px;
}
.calendar table {
width: 100%;
border-collapse: collapse;
}
.calendar th, .calendar td {
text-align: center;
padding: 5px;
}
.calendar td:hover {
background-color: #f0f0f0;
cursor: pointer;
}
</style>
</head>
<body>
<div class="calendar" id="calendar"></div>
<script>
function generateCalendar(year, month) {
const calendarDiv = document.getElementById('calendar');
const firstDay = new Date(year, month, 1).getDay();
const daysInMonth = new Date(year, month + 1, 0).getDate();
let calendarHTML = `
<table>
<tr>
<th>Sun</th>
<th>Mon</th>
<th>Tue</th>
<th>Wed</th>
<th>Thu</th>
<th>Fri</th>
<th>Sat</th>
</tr>
`;
let day = 1;
for (let i = 0; i < 6; i++) {
calendarHTML += '<tr>';
for (let j = 0; j < 7; j++) {
if (i === 0 && j < firstDay || day > daysInMonth) {
calendarHTML += '<td></td>';
} else {
calendarHTML += `<td>${day}</td>`;
day++;
}
}
calendarHTML += '</tr>';
if (day > daysInMonth) break;
}
calendarHTML += '</table>';
calendarDiv.innerHTML = calendarHTML;
}
// 初始化日历,默认显示当前月份
const today = new Date();
generateCalendar(today.getFullYear(), today.getMonth());
</script>
</body>
</html>new Date(year, month, 1).getDay()获取星期几,new Date(year, month + 1, 0).getDate()获取月份的天数。通过以上示例和解决方法,你可以创建一个基本的日历组件,并根据需要进行扩展和优化。
没有搜到相关的文章