…">
当前位置:首页 > 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样式:

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

js实现日期表格

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

相关文章

表格制作css

表格制作css

基础表格样式 使用CSS可以轻松地为HTML表格添加样式。以下是一个基础表格的HTML和CSS示例: <table class="basic-table"> <thead>…

在vue实现学生表格

在vue实现学生表格

实现学生表格的基本结构 在Vue中实现学生表格需要使用<table>标签结合Vue的数据绑定功能。准备一个数组存储学生数据,通过v-for指令动态渲染表格行。 <template…

vue实现子表格

vue实现子表格

实现子表格的基本思路 在Vue中实现子表格通常需要结合组件化思想和动态渲染技术。常见的场景是在主表格的行内嵌套子表格,展开主表行时显示对应的子表数据。 使用el-table实现子表格(Element…

vue实现导出表格

vue实现导出表格

Vue 实现导出表格的方法 使用 xlsx 库导出 Excel 安装 xlsx 库 npm install xlsx 在 Vue 组件中引入 xlsx import * as XLSX fro…

vue 实现日期滚动

vue 实现日期滚动

Vue 实现日期滚动的方法 使用第三方库(如vant或element-ui) 安装vant或element-ui库,这些库提供了现成的日期选择组件,支持滚动选择日期。以vant为例: <te…

vue实现表格修改

vue实现表格修改

Vue 实现表格修改的方法 使用 v-model 绑定数据 在 Vue 中可以通过 v-model 实现双向数据绑定,适用于表格单元格的编辑。 为表格的每个单元格绑定 v-model,动态修改数据。…