项目中有个需求,根据两个时间获取该时间内所有星期五的那天的日期,并且生成一个数组,我先说下我的思路,
首先获取两个时间内的相差的天数,然后进行循环,根据起始日期进行判断是否是周五,然后获取到下一天的日期在进行判断,如果是周五的就把他添加到数组,因为涉及到月份,闰年二月的问题,所以有些棘手,具体解决方法如下代码,
//获取当前时间是周几function getMyDay(date){var week;if(date.getDay()==0) week="周日"if(date.getDay()==1) week="周一"if(date.getDay()==2) week="周二"if(date.getDay()==3) week="周三"if(date.getDay()==4) week="周四"if(date.getDay()==5) week="周五"if(date.getDay()==6) week="周六"return week;}//获取两个时间段相差的天数function daysBetween(DateOne,DateTwo){ var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ('-')); var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ('-')+1); var OneYear = DateOne.substring(0,DateOne.indexOf ('-')); var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ('-')); var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ('-')+1); var TwoYear = DateTwo.substring(0,DateTwo.indexOf ('-')); var cha=((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)- Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000); return Math.abs(cha); }//获取当前日期的下一天日期function GetDateStr(AddDayCount,time) {var dd = new Date(time);dd.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期var y = dd.getFullYear();var m = dd.getMonth()+1;//获取当前月份的日期var d = dd.getDate();return y+"-"+m+"-"+d;}var stime = "2018-01-05"; //起始时间var etime = "2018-01-24"; //结束时间var d_length = daysBetween(stime,etime); //获取两个时间段相差的天数var save_stime = stime; //保存当前时间var all_time = []; //存放周五的时间数组for (var i = 0; i