好久没有记录工作中遇到的问题,其中的原因之一应该是没有什么代表性的或者说是没有网上搜不到答案的,毕竟在大多数前端中我还是很渺小。今天写这个博客就是因为工作中遇到了问题而且网上也没有找到合适的答案,自己写了大部分代码加上借鉴了一些别人的思想,下面就步入正题:
——更新:2018-6-20加上今天是不是周日的判断
——更新:2018-7-31给字符串添加方法来实现调用,感谢Rainbow_miao的提醒.github地址:https://github.com/zancheng/weekCalculation
判断规则
第一周:是这个月的新一周,且不在上个月最后一周内。
引用>//获取某年某月的有多少周 String.prototype。weekInMonthCount=function () { var=new日期日期((新日期(这).setDate(1) | |(新日期()).setDate (1)); var firstWeekDate=1;//默认第一周是本月1号为了模拟本月1号是否为本月第1周的判断 如果(date.getDay()===1){//判断1号是周一 firstWeekDatek=1; }else if (date.getDay()===0){//判断1号是周日 firstWeekDate=8 - 7 + 1; 其他}{//判断1号是周二至周六之间 firstWeekDate=8 - date.getDay () + 1; } date.setMonth (date.getMonth () + 1); date.setDate (0); var monthHasDays=date.getDate();//本月天数 monthHasDays=date.getDate () - firstWeekDate + 1; var hasWeek=Math.ceil (monthHasDays/7);//计算本月有几周 返回hasWeek; };//获取今天是今年的第几周 String.prototype。weekIndexInYear=function () { var nowDate=new日期(这个!=" & # 63;:新日期()); var initTime=new日期(这个!=" & # 63;:新日期()); initTime.setMonth (0);//本年初始月份 initTime.setDate (1);//本年初始时间 var differenceVal=nowDate - initTime;//今天的时间减去本年开始时间,获得相差的时间 var todayYear=Math.ceil (differenceVal/(24 * 60 * 60 * 1000));//获取今天是今年第几天 var指数=Math.ceil (todayYear/7);//获取今天是今年第几周 返回索引; };//获取今天是今年的第几天 String.prototype。dateIndexInYear=function () { var nowDate=new日期(这个!=" & # 63;:新日期()); var initTime=new日期(这个!=" & # 63;:新日期()); initTime.setMonth (0);//本年初始月份 initTime.setDate (1);//本年初始时间 var differenceVal=nowDate - initTime;//今天的时间减去本年开始时间,获得相差的时间 返回Math.ceil (differenceVal/(24 * 60 * 60 * 1000)); };//获取今天是第几周 String.prototype。weekIndexInMonth=function () { var=new日期(this.trim () !=" & # 63;:新日期()); var dateStart=new日期((新日期(this.trim () !=" & # 63;:新的日期()).setDate (1)));//本月初 var一周=1; 如果(dateStart.getDay ()===1) { 一周=1; }else if (dateStart.getDay ()===0) { 一周=8 - 7 + 1; 其他}{ 一周=8 - dateStart.getDay () + 1; } var weekIndex=1; var c=date.getDate (); 如果(date.getDay ()===1,,date.getDate () & lt;7){ weekIndex=1; }else if (c & lt;一周){ weekIndex=1; 其他}{ 如果(c & lt;7){ weekIndex=Math.ceil (c/7); 其他}{ c=c -一周+ 1; 如果(c % 7===0) { 如果(dateStart.getDay () !==6) { weekIndex=c/7; 其他}{ weekIndex=c/7 + 1; } 其他}{ weekIndex=Math.ceil (c/7); } } } 返回weekIndex;};
<强> String.prototype.dateIndexInYear 强>
获取这一天属于今年的第多少天
默认时间是今天,调用方法示例:
的2018/10/1 .dateIndexInYear ()
引用>
返回:273<强> String.prototype。weekIndexInYear 强>
获取这一天属于今年的第多少周
默认时间是今天,调用方法示例:
“2018-10-1”.weekIndexInYear ()
引用>
返回:39<强> String.prototype。weekInMonthCount 强>
获取这一年的这一月的有多少周
默认时间是今天,调用方法示例:
“2018-10-1”.weekInMonthCount ()
返回:5
引用><强> String.prototype.weekIndexInMonth 强>
获取这一周属于本月第多少周
如果属于上个月,返回1
默认时间是今天,调用方法示例:
JS获取今天是本月第几周,本月共几周,本月有多少天,是今年的第几周,是今年的第几天的示例代码