JS获取指定时间内的所有星期五

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangwenwu2/article/details/79148200

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

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

	//获取当前时间是周几
	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); //打印出即可




猜你喜欢

转载自blog.csdn.net/zhangwenwu2/article/details/79148200