function splitDate(startTime,endTime){
var startTime = "20051201";
var endTime = "20060620";

var year1 = startTime.substring(0,startTime.length-4);
var month1 = startTime.substring(startTime.length-4,startTime.length-2);
var day1 = startTime.substring(startTime.length-2);
     var year2 = startTime.substring(0,endTime.length-4);
var month2 = startTime.substring(endTime.length-4,endTime.length-2);
var day2 = startTime.substring(endTime.length-2);

var asStartDate = new Date(year1,month1-1,day1-1); 
var asEndDate = new Date(year2,month2-1,day2-1); 


/* -- 计算两个字符(YYYY-MM-DD)的日期相隔天数 -- */
//取相差天数 日期格式为 2004-12-01
var dates = Date_Compare('2005-12-01','2006-06-21'); 

//var dates = Date_Compare(asStartDate,asEndDate);
//alert(dates); //取月份 0~11
//取日期天数

var days = [31,31,28,31,30,31,30,31,31,30,31,30,31];
var newdate = asStartDate;
var Date;
//取当前月份
var monthnum = newdate.getMonth()+1;

//取当前月份日期数
var thisendday = days[monthnum];

//alert( newdate.getDate() +" Month "+ newdate.getMonth());document.write( dates+"当前月份日期数"+newdate.getDate() +" Month = "+ newdate.getMonth())//循环增加日期天数
for(i=0; i < dates; i++)
{
//如果日数未超出,日期+1
if( newdate.getDate() < thisendday )

newdate.setDate(newdate.getDate() + 1);   
Date = Date+';'+newdate.getYear()+(newdate.getMonth()+1)+newdate.getDate();
}
//如果日数超出,月数+1,日期=1
else
{
//如果月数未超出12,月数+1,日期=1
if( newdate.getMonth() < 11 )
{
newdate.setDate(1);
newdate.setMonth(newdate.getMonth() +1);
Date = Date+';'+newdate.getYear()+monthnum+newdate.getDate();
//取当前月份日期数
monthnum = newdate.getMonth();
thisendday = days[monthnum];
}
//如果月数超出12,日期=1,月数=1
else
{
//如果年数未超出asEndDate.year,年数+1,月数=1,日期=1
if( newdate.getYear() < asEndDate.getYear() )
{
newdate.setDate(1)  ;
newdate.setMonth(0)  ;
newdate.setYear(newdate.getYear() +1);
Date = Date+';'+newdate.getYear()+(newdate.getMonth()+1)+newdate.getDate();
//处理闰年2月
if (asStartDate.year%4==0) {days[2] = 29;}
//取当前月份日期数
monthnum = newdate.getMonth()+1;
thisendday = days[monthnum];
}
//如果年数超出
else
{
//return Date;
break; 
}

}

}
}
//alert(Date);
return Date;

解决方案 »

  1.   

    <script type="text/javascript">
    //<![CDATA[
    var sDt=new Date(2006,10,1);
    var eDt=new Date(2006, 11,1);
    defaultStatus=sDt+' '+eDt
    function fGetDtList(_sDt, _eDt){
    var ar=[];
    var i=0;
    ar[i++]=_sDt.toLocaleString();
    while(_sDt<_eDt){
    _sDt.setDate(_sDt.getDate()+1)
    ar[i++]=_sDt.toLocaleString();
    }
    return ar;
    }
    //document.write(fGetDtList(sDt,eDt).join(';'));
    document.write(fGetDtList(sDt,eDt).join('<br/>'));
    //]]>
    </script>
      

  2.   

    楼主,这么简单的事弄得那么复杂干什么,一句FOR就搞定了 
    <script language=vbscript> 
    for i =0  to  datediff("d",日期A,日期B)  
      document.write dateadd("d",i,日期A)
    next
    </script>
      

  3.   

    <script>
    function gorush(s1,s2){
    var f=function(s){return [s.slice(0,4),s.slice(4,6),s.slice(6)].join("/")}
    var d1=new Date(f(String(Math.min(Number(s1),Number(s2)))))
    var d2=new Date(f(String(Math.max(Number(s1),Number(s2)))))
    var x=d1.getFullYear(),y=d1.getMonth(),z=d1.getDate(),ret=[],d3;
    while((d3=new Date(x,y,++z))<d2){
    ret.push([d3.getFullYear(),("0"+(d3.getMonth()+1)).slice(-2),("0"+(d3.getDate())).slice(-2)].join(""))
    }
    return ret.join(";")
    }
    var s=gorush("20051220","20060203")
    alert(s)
    </script>
      

  4.   

    这个不用自己写
    记得以前看过一个帖子里,梅花雪老师把这些关于日期的函数都用prototype的方法写到Date对象里去了,很好用,翻翻老帖子应该能翻到
      

  5.   

    var sdate=new Date(2006,0,6).getTime();
    var edate=new Date(2006,11,6).getTime();
    for(var i=sdate;i < edate;i+=86400000)
    {
    var tmp=new Date(i);
    document.write(tmp.getYear());document.write("-");
    document.write(tmp.getMonth()+1);document.write("-");
    document.write(new Date(i).getDate());
    document.write("<br>");
    }
      

  6.   

    var startTime = "20051201";
    var year = eval(startTime.substring(0,startTime.length-4));
    var month = eval(startTime.substring(startTime.length-4,startTime.length-2))-1;
    var day = eval(startTime.substring(startTime.length-2));var sdate=new Date(year,month,day).getTime();