日历表在前端开发中是一个常见的组件,用于展示日期并允许用户进行日期选择。下面是一个简单的日历表的JavaScript代码实现,包括HTML和CSS部分,以便提供一个完整的示例。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>日历表</title>
<style>
/* 简单的CSS样式 */
.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;
border: 1px solid #ddd;
}
.calendar th {
background-color: #f4f4f4;
}
.calendar .today {
background-color: #ffcccc;
}
</style>
</head>
<body>
<div id="calendar" class="calendar"></div>
<script src="calendar.js"></script>
</body>
</html>
function generateCalendar(year, month) {
const calendarDiv = document.getElementById('calendar');
const daysInMonth = new Date(year, month + 1, 0).getDate();
const firstDay = new Date(year, month, 1).getDay();
let calendarHTML = '<table>';
calendarHTML += '<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 {
const date = new Date(year, month, day);
const today = new Date().toISOString().split('T')[0];
const isToday = date.toISOString().split('T')[0] === today;
calendarHTML += `<td class="${isToday ? 'today' : ''}">${day}</td>`;
day++;
}
}
calendarHTML += '</tr>';
if (day > daysInMonth) break;
}
calendarHTML += '</table>';
calendarDiv.innerHTML = calendarHTML;
}
// 初始化日历,默认显示当前月份
const today = new Date();
generateCalendar(today.getFullYear(), today.getMonth());
Date
对象来统一格式。这个示例提供了一个基本的日历表实现,可以根据具体需求进行扩展和定制。
领取专属 10元无门槛券
手把手带您无忧上云