`
kevin_gzhz
  • 浏览: 58658 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

js获取给定月份的前N个月的月份

 
阅读更多

最近老是跟js打交道,写了些小函数,收集一下做备用。

 

   //获取上个周期的初始时间
		function getLastBeginMonth(beginYearMonth,endYearMonth){
		    var beginYear = parseInt(beginYearMonth.substr(0,4),10);              
			var beginMonth = parseInt(beginYearMonth.substr(4,6),10); 
			var endYear = parseInt(endYearMonth.substr(0,4),10);              
			var endMonth = parseInt(endYearMonth.substr(4,6),10); 
			 var Month1,Month2,iMonths; 
			 Month1=beginYear*12+beginMonth;
			 Month2=endYear*12+endMonth;
			 iMonths = Month2-Month1+1;  
			//create the date 
			var myDate = new Date(beginYear,beginMonth,0); 
			//add a month 
			myDate.setMonth(myDate.getMonth() - iMonths); 
			var firstMonth=date2str(myDate,"yyyyMM")
			alert("开始日期:"+beginYearMonth+",间隔月份数:"+iMonths+",前推N月后的日期:"+firstMonth);
			return firstMonth;
			 
		}
		  
		//获取上个周期的结束时间
		function getLastEndMonth(beginYearMonth){           
			var strYear = parseInt(beginYearMonth.substr(0,4),10);              
			var strMonth = parseInt(beginYearMonth.substr(4,6),10);      
			if(strMonth - 1 == 0){      
			   strYear -= 1;      
			   strMonth = 12;      
			} else {      
			   strMonth -= 1;      
			}          
			if(strMonth<10){        
			   strMonth="0"+strMonth;        
			}      
			
			var monthstr = strYear+""+strMonth;  
			alert("当前月份:"+beginYearMonth+",上一个月:"+monthstr);
			return monthstr;      
		}   

		function date2str(x,y) {
			var z = {M:x.getMonth()+1,d:x.getDate(),h:x.getHours(),m:x.getMinutes(),s:x.getSeconds()};
			y = y.replace(/(M+|d+|h+|m+|s+)/g,function(v) {return ((v.length>1?"0":"")+eval('z.'+v.slice(-1))).slice(-2)});
			return y.replace(/(y+)/g,function(v) {return x.getFullYear().toString().slice(-v.length)});
		}		
      

 

测试:

 <a href="#" onclick="getLastEndMonth('201303');">获取上一个月</a><br/>

 <a href="#" onclick="getLastBeginMonth('201303','201405');">获取初始月份</a>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics