开始时间:2011-08-18
结束时间:2012-08-17
以每个月的25号、间隔1个月,然后把开始时间和结束时间进行分割。最终分割为:
2011-08-18 2011-08-25
2011-08-26 2011-09-25
2011-09-26 2011-10-25
……还有谁写过这样的方法,传递开始时间、结束时间、时间间隔、间隔日
结束时间:2012-08-17
以每个月的25号、间隔1个月,然后把开始时间和结束时间进行分割。最终分割为:
2011-08-18 2011-08-25
2011-08-26 2011-09-25
2011-09-26 2011-10-25
……还有谁写过这样的方法,传递开始时间、结束时间、时间间隔、间隔日
//将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式
startTime = startTime.replace(/\-/g, "/");
endTime = endTime.replace(/\-/g, "/");
//将计算间隔类性字符转换为小写
diffType = diffType.toLowerCase();
var sTime = new Date(startTime); //开始时间1
var eTime = new Date(endTime); //结束时间
//作为除数的数字
var divNum = 1;
switch (diffType) {
case "second":
divNum = 1000;
break;
case "minute":
divNum = 1000 * 60;
break;
case "hour":
divNum = 1000 * 3600;
break;
case "day":
divNum = 1000 * 3600 * 24;
break;
default:
break;
}
return parseInt((eTime.getTime() - sTime.getTime()) / parseInt(divNum));
}
"2011-08-18","2011-08-25",
"2011-08-26","2011-09-25",
"2011-09-26","2011-10-25",
"2011-10-26","2011-11-25",
"2011-11-26","2011-12-25",
"2011-12-26","2012-01-25",
"2012-01-26","2012-02-25",
"2012-02-26","2012-03-25",
"2012-03-26","2012-04-25",
"2012-04-26","2012-05-25",
"2012-05-26","2012-06-25",
"2012-06-26","2012-07-25",
"2012-08-26","2012-08-17"]
{
startTime = startTime.replace(/\-/g, "/");
endTime = endTime.replace(/\-/g, "/");
var sTime = new Date(startTime);
var eTime = new Date(endTime);
var divNum = 1000 * 3600 * 24;
return parseInt((eTime.getTime()-sTime.getTime())/parseInt(divNum));
}function returnMonth(num)
{
var str="";
switch(num)
{
case 0:str="01";break;
case 1:str="02";break;
case 2:str="03";break;
case 3:str="04";break;
case 4:str="05";break;
case 5:str="06";break;
case 6:str="07";break;
case 7:str="08";break;
case 8:str="09";break;
case 9:str="10";break;
case 10:str="11";break;
case 11:str="12";break;
}
return str;
}function addMonth(sDate,num)
{
var aYmd=sDate.split('-');
var dt=new Date(aYmd[0],aYmd[1],aYmd[2]);
dt.setMonth(dt.getMonth()+num);
var y=dt.getFullYear();
var m=returnMonth(dt.getMonth());
var d=dt.getDate();
if(d<10) d='0'+d;
return y+'-'+m+'-'+d;
}function DateNextDay(d2)
{
var str=d2.slice(5)+"-"+d2.slice(0,4);
var d=new Date(str);
var d3=new Date(d.getFullYear(),d.getMonth(),d.getDate()+1);
var month=returnMonth(d3.getMonth());
var day=d3.getDate();
day=day<10? "0"+day:day;
var str2=d3.getFullYear()+"-"+month+"-"+day;
return str2;
}function GetDateArr(begin_date,end_date,months,dt)
{
var i=0;
var a=new Array();
var tempdt=begin_date;
while(GetDateDiff(tempdt,end_date)>=0)
{
var tempdtsplit=tempdt.split('-');
var dt1=tempdtsplit[0]+'-'+tempdtsplit[1]+'-'+tempdtsplit[2];
var dt2=tempdtsplit[0]+'-'+tempdtsplit[1]+'-'+dt;
if (GetDateDiff(dt1,dt2)<0)
{
dt2=addMonth(dt2,months-1);
}
if (GetDateDiff(dt2,end_date)>=0)
{
a[i]=new Array(tempdt,dt2,dt2);
}
else
{
a[i]=new Array(tempdt,end_date,end_date);
}
tempdt=DateNextDay(dt2);
i++;
}
return a;
}alert(GetDateArr('2011-08-18','2012-08-17',1,'25'));