var date1 = new Date("2004/03/05");
var date2 = new Date("2004/02/25");
for (var i=0;i<=(date1-date2)/1000/60/60/24;i++){
var date = new Date(date2.getFullYear()+"/"+(date2.getMonth()+1)+"/"+(date2.getDate()+i));
document.write(date.getFullYear()+"/"+(date.getMonth()+1)+"/"+date.getDate()+"<br>");
}大体上这样,自己改一下:
1、"-"替换成"/"
2、2004-3-5 解释成2004-03-05
3、判断date1和date2的大小

解决方案 »

  1.   

    /*****************************************************************
     8   Name DateCompare
         Purpose 计算两个字符(YYYY-MM-DD)日期相隔天数     Param asStartDate  起始日期
                asEndDate    终止日期     Return 字符串
     *****************************************************************/
     function DateCompare(asStartDate,asEndDate){
        var miStart = Date.parse(asStartDate.replace(/\-/g, '/'));
        var miEnd   = Date.parse(asEndDate.replace(/\-/g, '/'));
        return (miEnd-miStart)/(1000 * 24 * 3600);
     }/*****************************************************************
     10  Name addDays
         Purpose 日期和天数相加等于第二个日期     Param date   YYYY-MM-DD格式的字符串
                days   天数     Return Date
     *****************************************************************/
     function addDays(date , days){
         var date = new Date(Date.parse(date.replace(/\-/g, '/')));
         return date.addDays(days) ;
     } 以下是实现方法,需要调用上面的两个方法:
    /****************************************************************
     *
     *   Return     Array  以数组返回得到的所有日期
     ****************************************************************/
     function getDateArray(startDate , endDate){
       var array = new Array() ;
       array.push(addDays(startDate , 0));  // 保存起始日期
       var interDays = DateCompare(startDate , endDate); //取两日期的间隔天数
       for(int i = 1 ; i <= interDays ; i++){
          var theDate = addDays(startDate , i);
          array.push(theDate) ;
       }
       return array;
     }
     
      

  2.   

    不好意思,上面的实现少了一个方法。/*****************************************************************
     5   Name addDays
         Purpose 计算日期加上天数后的日期
         Param  days   天数     Return Date
     *****************************************************************/
     Date.prototype.addDays = function(days){
         var interTimes = days * 24 * 60 * 60 * 1000 ;
         return new Date(Date.parse(this) + interTimes) ;     
     }
      

  3.   

    <html>
    <head>
    <title> New Document </title>
    </head>
    <body bgcolor="#FFFFFF">
    2004-02-25<input type="checkbox" name="ch" value="2004-02-25">
    2004-03-25<input type="checkbox" name="ch" value="2004-03-25">
    2004-03-05<input type="checkbox" name="ch" value="2004-03-05">
    2004-04-05<input type="checkbox" name="ch" value="2004-04-05">
    <button onclick="kiss()">gooooooo</button>
    <div id="div"></div>
    <script language="JavaScript">
    <!--
    function kiss()
    {
        var dates = getCheckboxValue();
        if(dates.length!=2)
    {
    alert("你必须选择两个日期");
    return;
    }
    comp_date(dates[0],dates[1]);
    }function getCheckboxValue()
    {
        var str="";
        for(var i=0;i<ch.length;i++)
    {
       if(ch[i].checked)
         str += ch[i].value+",";
    }
    str=str.substring(0,str.length-1);
    str=str.split(",");
    return str;
    }function comp_date(date1,date2)
    {
        var reg_ymd=/^([\d]{4})-([\d]{1,2})-([\d]{1,2})$/;//校验日期的正则
    var year,mon,day,arr_dt1,arr_dt2,dt1,dt2;
    if (reg_ymd.test(date1)==true && reg_ymd.test(date2)==true)
    {
      arr_dt1=date1.match(reg_ymd);
      arr_dt2=date2.match(reg_ymd);
      dt1=new Date(arr_dt1[1]+"/"+arr_dt1[2]+"/"+arr_dt1[3]);
      dt2=new Date(arr_dt2[1]+"/"+arr_dt2[2]+"/"+arr_dt2[3]);
      boolDate(dt1,dt2);
    }
    }function boolDate(dt1,dt2)
    {
       var d,num,dni,str="";
       if(dt1>dt2)
       {
      num = dt1-dt2;
          dni = Math.floor(num / (1000 * 60 * 60 * 24));
      for(var i=1;i<dni;i++)
      {
        d = new Date(dt2.getYear()+"/"+(dt2.getMonth()+1)+"/"+(dt2.getDate()+i));
    str += d.getYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()+"<br>";
      }
       }
       else
       {
       num = dt2-dt1;
           dni = Math.floor(num / (1000 * 60 * 60 * 24));
       for(var i=1;i<dni;i++)
       {
       d = new Date(dt1.getYear()+"/"+(dt1.getMonth()+1)+"/"+(dt1.getDate()+i));
       str += d.getYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()+"<br>";
       }
       }
       div.innerHTML = str;
    }
    //-->
    </script>
    </body>
    </html>
      

  4.   

    又精简了一下:)
    <html>
    <head>
    <title> New Document </title>
    </head>
    <body bgcolor="#FFFFFF">
    2004-02-25<input type="checkbox" name="ch" value="2004-02-25">
    2004-03-25<input type="checkbox" name="ch" value="2004-03-25">
    2004-03-05<input type="checkbox" name="ch" value="2004-03-05">
    2004-04-05<input type="checkbox" name="ch" value="2004-04-05">
    <button onclick="kiss()">gooooooo</button>
    <div id="div"></div>
    <script language="JavaScript">
    <!--
    function kiss()
    {
        var dates = getCheckboxValue();
        if(dates.length!=2)
    {
    alert("你必须选择两个日期");
    return;
    }
    comp_date(dates[0],dates[1]);
    }function getCheckboxValue()
    {
        var str="";
        for(var i=0;i<ch.length;i++)
    {
       if(ch[i].checked)
         str += ch[i].value+",";
    }
    str=str.substring(0,str.length-1);
    str=str.split(",");
    return str;
    }function comp_date(date1,date2)
    {
        var reg_ymd=/^([\d]{4})-([\d]{1,2})-([\d]{1,2})$/;//校验日期的正则
    var year,mon,day,arr_dt1,arr_dt2,dt1,dt2;
    if (reg_ymd.test(date1)==true && reg_ymd.test(date2)==true)
    {
      arr_dt1=date1.match(reg_ymd);
      arr_dt2=date2.match(reg_ymd);
      dt1=new Date(arr_dt1[1]+"/"+arr_dt1[2]+"/"+arr_dt1[3]);
      dt2=new Date(arr_dt2[1]+"/"+arr_dt2[2]+"/"+arr_dt2[3]);
      if(dt1>dt2)
        disDate(dt1,dt2);
      else
         disDate(dt2,dt1);
    }
    }function disDate(bigDate,smallDate)
    {
        var d;
    var str="";
    var num = bigDate-smallDate;
        var dni = Math.floor(num / (1000 * 60 * 60 * 24));
    for(var i=1;i<dni;i++)
    {
        d = new Date(smallDate.getYear()+"/"+(smallDate.getMonth()+1)+"/"+(smallDate.getDate()+i));
    str += d.getYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()+"<br>";
    }
    div.innerHTML = str;
    }
    //-->
    </script>
    </body>
    </html>