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

被折叠的 条评论
为什么被折叠?



