// ? 这要获取服务器时间 var stime = ""; $.get("/getDate", {}, function(msg) { stime = formatDate(msg); initTable(); }) // ? 初始化表格 function initTable() { for (let i = 0; i < 5; i++) { let tr = "<tr>{html}</tr>"; let td = ""; for (let j = 0; j < 7; j++) { td = '<td></td>' + td; } tr = tr.replace("{html}", td); $("tbody").append(tr); } let allDay = getNowM(stime); for (let i in allDay) { let nowDay = allDay[i]; let nowTr = _getMonthWeek(nowDay); let newWeek = getweekday(nowDay); let tr = $("tbody tr").eq(nowTr - 1); $(tr).find("td").eq(newWeek).text(nowDay); } } // ?获取当前月的天数 function mGetDate(now) { let date = new Date(now); let year = date.getFullYear(); let month = date.getMonth() + 1; let d = new Date(year, month, 0); console.info(d); return d.getDate(); } // ? 获取当前月的所有日期 function getNowM(now) { now = new Date(now); let current_month_num = mGetDate(now); let current_month = []; for (let i = 1; i <= current_month_num; i++) { let day = now.setDate(i); let everyDay = formatDate(day); current_month.push(everyDay); } return current_month; } // ?根据日期返回第几周 function _getMonthWeek(theDate) { let currentDay = new Date(theDate); let theSaturday = currentDay.getDate() + (6 - currentDay.getDay()); return Math.ceil(theSaturday / 7); } // ?根据日期返回周几 function getweekday(date) { let weekArray = new Array(0, 1, 2, 3, 4, 5, 6, 7); let week = weekArray[new Date(date).getDay()]; //注意此处必须是先new一个Date return week; } // ? 格式化时间 function formatDate(date) { date = new Date(date); let myyear = date.getFullYear(); let mymonth = date.getMonth() + 1; let myweekday = date.getDate(); mymonth < 10 ? mymonth = "0" + mymonth : mymonth; myweekday < 10 ? myweekday = "0" + myweekday : myweekday; return myyear + "-" + mymonth + "-" + myweekday; }
<table> <thead> <tr> <td>星期日</td> <td>星期一</td> <td>星期二</td> <td>星期三</td> <td>星期四</td> <td>星期五</td> <td>星期六</td> </tr> </thead> <tbody> </tbody> </table>