A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

项目中有个需求,根据两个时间获取该时间内所有星期五的那天的日期,并且生成一个数组,我先说下我的思路,

首先获取两个时间内的相差的天数,然后进行循环,根据起始日期进行判断是否是周五,然后获取到下一天的日期在进行判断,如果是周五的就把他添加到数组,因为涉及到月份,闰年二月的问题,所以有些棘手,具体解决方法如下代码,



  •         //获取当前时间是周几



  •         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 < d_length; i++){  //循环总天数



  •                 if(getMyDay(new Date(save_stime)) == "周五"){  //判断当前日期是否为周五



  •                         all_time.push(save_stime); //符合条件的添加到数组



  •                 }



  •                 save_stime = GetDateStr(1,save_stime); //每次循环后把下一天的日期存进save_stime



  •         }



  •         alert(all_time); //打印出即可





1 个回复

倒序浏览

很不错,受教了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马