…">
当前位置:首页 > JavaScript

js实现日期表格

2026-02-03 06:00:36JavaScript

使用JavaScript创建日期表格

在HTML中创建一个<table>元素,并为其设置一个ID以便JavaScript操作:

<table id="dateTable">
  <thead>
    <tr>
      <th>周日</th>
      <th>周一</th>
      <th>周二</th>
      <th>周三</th>
      <th>周四</th>
      <th>周五</th>
      <th>周六</th>
    </tr>
  </thead>
  <tbody id="dateBody"></tbody>
</table>

编写JavaScript生成日期表格

定义生成日期表格的函数:

function generateDateTable(year, month) {
  const tableBody = document.getElementById('dateBody');
  tableBody.innerHTML = '';

  const firstDay = new Date(year, month - 1, 1);
  const lastDay = new Date(year, month, 0);
  const startDay = firstDay.getDay();
  const totalDays = lastDay.getDate();

  let date = 1;
  for (let i = 0; i < 6; i++) {
    const row = document.createElement('tr');

    for (let j = 0; j < 7; j++) {
      const cell = document.createElement('td');

      if (i === 0 && j < startDay) {
        cell.textContent = '';
      } else if (date > totalDays) {
        cell.textContent = '';
      } else {
        cell.textContent = date;
        date++;
      }

      row.appendChild(cell);
    }

    tableBody.appendChild(row);
    if (date > totalDays) break;
  }
}

调用函数生成表格

指定年份和月份调用生成函数:

// 生成2023年10月的日历
generateDateTable(2023, 10);

添加样式美化表格

通过CSS为表格添加基本样式:

#dateTable {
  border-collapse: collapse;
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  font-family: Arial, sans-serif;
}

#dateTable th, #dateTable td {
  border: 1px solid #ddd;
  padding: 8px;
  text-align: center;
}

#dateTable th {
  background-color: #f2f2f2;
  font-weight: bold;
}

#dateTable td:hover {
  background-color: #f5f5f5;
}

动态生成当前月份表格

自动获取当前年月并生成表格:

const now = new Date();
generateDateTable(now.getFullYear(), now.getMonth() + 1);

添加月份导航功能

实现可以切换月份的导航按钮:

<div class="calendar-nav">
  <button id="prevMonth">上个月</button>
  <span id="currentMonth"></span>
  <button id="nextMonth">下个月</button>
</div>
let currentYear = new Date().getFullYear();
let currentMonth = new Date().getMonth() + 1;

function updateCalendar() {
  generateDateTable(currentYear, currentMonth);
  document.getElementById('currentMonth').textContent = 
    `${currentYear}年${currentMonth}月`;
}

document.getElementById('prevMonth').addEventListener('click', () => {
  currentMonth--;
  if (currentMonth < 1) {
    currentMonth = 12;
    currentYear--;
  }
  updateCalendar();
});

document.getElementById('nextMonth').addEventListener('click', () => {
  currentMonth++;
  if (currentMonth > 12) {
    currentMonth = 1;
    currentYear++;
  }
  updateCalendar();
});

updateCalendar();

高亮显示当天日期

修改生成函数以高亮当前日期:

function generateDateTable(year, month) {
  // ...之前的代码...

  const today = new Date();
  const isCurrentMonth = year === today.getFullYear() && month === today.getMonth() + 1;

  // 在生成日期的循环内添加:
  if (isCurrentMonth && date === today.getDate()) {
    cell.classList.add('today');
  }
}

添加CSS样式:

js实现日期表格

.today {
  background-color: #4CAF50;
  color: white;
  font-weight: bold;
}

标签: 表格日期
分享给朋友:

相关文章

css制作表格

css制作表格

使用HTML和CSS创建表格 HTML中的<table>元素用于创建表格,结合CSS可以调整样式。以下是一个基础示例: <table> <tr> &l…

表格tb制作css

表格tb制作css

使用CSS美化HTML表格 通过CSS可以自定义表格样式,使其更美观和符合设计需求。以下是一些常用方法: 基础表格样式 table { width: 100%; border-collap…

vue实现分组表格

vue实现分组表格

Vue 实现分组表格的方法 使用 v-for 嵌套循环实现分组 通过嵌套的 v-for 循环可以轻松实现分组表格。外层循环遍历分组数据,内层循环遍历每组中的具体项。 <template>…

表格制作css

表格制作css

CSS表格样式设计 基础表格样式 通过border-collapse合并边框,使表格更整洁。width控制整体宽度,text-align设置文字对齐方式。 table { border-coll…

vue实现表格序号

vue实现表格序号

实现表格序号的常见方法 在Vue中为表格添加序号列可以通过多种方式实现,以下是几种典型方案: 使用v-for索引 <template> <table> <…

vue实现表格组件

vue实现表格组件

Vue 表格组件实现方法 基础表格实现 使用 Vue 的模板语法可以快速实现基础表格功能。通过 v-for 指令循环渲染表格数据。 <template> <table>…