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="#" οnclick="getLastEndMonth('201303');">获取上一个月</a><br/>

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值