function Dragon() { this.init();}Dragon.prototype = { nowDate: null, showDate: new Date(), init: function(date) { var date = date || this.showDate; var year = date.getFullYear() + "-" + ((date.getMonth() + 1) > 9 ? (date.getMonth() + 1) : "0" + (date.getDate() + 1)) + "-" + ((date.getDate()) > 9 ? (date.getDate()) : "0" + (date.getDate())); var currentDays = this.getMonthDays(date); var prevDays = this.getPrevMonthDays(); var nextDays = this.getNextMonthDays(); var firstDay = currentDays.firstDay; var indexRow = 0; html = "
"; for (let i = 1; i < firstDay; i++) { html += ""; } for (let i = 1; i <= currentDays.days; i++) { html += "" + i + ""; if ((i + firstDay - 1) % 7 == 0) { html += "
"; indexRow++; } } if (indexRow == 4) { var cols = 7 - (firstDay + currentDays.days - 1) % 7; for (let i = 1; i <= cols; i++) { html += ""; } html += "
"; } if (indexRow == 5) { var cols = 7 - (firstDay + currentDays.days - 1) % 7; for (let i = 1; i <= cols; i++) { html += ""; } html += ""; } document.querySelector(".calendC").innerHTML = html; console.log(year); }, getMonthDays: function(date, str) { //获取传入时间当前的月份有多少天(不传时间就是获取当前月份的天数) var str = str === undefined ? 0 : str; var date = date || new Date(); if (str == 0) { this.showDate = date; } date.setDate(1); var firstDay = date.getDay(); var monthStart = date.getTime(); date.setMonth(date.getMonth() + 1); var monthEnd = date.getTime(); var obj = {}; var days = Math.ceil((monthEnd - monthStart) / (24 * 60 * 60 * 1000)); date.setMonth(date.getMonth() - 1) obj = { days: days, firstDay: firstDay == 0 ? 7 : firstDay } return obj; }, getCurrentMonthDays: function() { //获取当前月份的天数 var date = new Date(); if (this.nowDate == null) { this.nowDate = date; } date.setDate(1); var firstDay = date.getDay(); var monthStart = date.getTime(); date.setMonth(date.getMonth() + 1); var monthEnd = date.getTime(); var obj = {}; var days = Math.ceil((monthEnd - monthStart) / (24 * 60 * 60 * 1000)); date.setMonth(date.getMonth() - 1); obj = { days: days, firstDay: firstDay == 0 ? 7 : firstDay } return obj; }, getNextMonthDays: function() { //获取下一个月的天数 var date = this.showDate; date.setMonth(date.getMonth() + 1); this.getMonthDays(date, 1); date.setMonth(date.getMonth() - 1); }, getPrevMonthDays: function() { //获取上一个月的天数 var date = this.showDate; date.setMonth(date.getMonth() - 1); this.getMonthDays(date, -1); date.setMonth(date.getMonth() + 1); }, nextMonth: function() { //显示下一个月的时间 var date = this.showDate; date.setMonth(date.getMonth() + 1); this.init(date); }, prevMonth: function() { //显示上一个月的时间 var date = this.showDate; date.setMonth(date.getMonth() - 1); this.init(date); }}var calend = new Dragon();$(".preMonth").on("click", function() { calend.prevMonth();})$(".nextMonth").on("click", function() { calend.nextMonth();})