最近老是跟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>