function getWeek() { this.nowTime = new Date(); this.init = function() { this.dayInWeek = this.nowTime.getDay(); this.dayInWeek == 0 && (this.dayInWeek = 7); this.thsiWeekFirstDay = this.nowTime.getTime() - (this.dayInWeek - 1) * 86400000; this.thisWeekLastDay = this.nowTime.getTime() + (7 - this.dayInWeek) * 86400000; return this; }; this.getWeekType = function(type) { type = ~~type; var firstDay = this.thsiWeekFirstDay + type * 7 * 86400000; var lastDay = this.thisWeekLastDay + type * 7 * 86400000; return this.getWeekHtml(firstDay, lastDay); } this.formateDate = function(time) { var newTime = new Date(time) var year = newTime.getFullYear(); var month = newTime.getMonth() + 1; var day = newTime.getDate(); return year + "-" + (month >= 10 ? month : "0" + month) + "-" + (day >= 10 ? day : "0" + day); }; this.getWeekHtml = function(f, l) { return this.formateDate(f) + "至" + this.formateDate(l); }; } var getWeek = new getWeek(); var week = getWeek.init().getWeekType(); console.log(week);
getWeekType()这个方法如果不传参数 或者传入0,返回的是本周的日期范围,如果要下周的范围则传入1,上周的传入-1;
注:这个是从周一开始算一周的开始,周日为结束。