var d1 = new Date(Date.parse("12-20-2008"));//月日年
var d2 = new Date(Date.parse("1-5-2009"));
var span = 3600*24*1000;
var dates = new Array();
while(d1.getTime()<d2.getTime())
{
dates.push(d1.getFullYear()+"-"+(d1.getMonth()+1)+"-"+d1.getDate());
d1 = new Date(d1.getTime()+span);
}
alert(dates.join('\r\n'));
不过Firefox下不大好用,呵呵

解决方案 »

  1.   

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>两个日期计算</title>
    <BODY ONLOAD="datediffstr()">
    <script language="javascript">
     function datediffstr()
     {
     var  Weekdaycount=0;
     var  noWeekdaycount=0;
     var  startdate="2008-08-01";
     var  endDate="2008-08-05";
     var  dateinnhtml="";
       start_date=startdate.split("-");
       yearstr= Number(start_date[0]);
       monthstr=Number(start_date[1]);
       daystr=Number(start_date[2]);
     var s_date=yearstr+"/"+monthstr+"/"+daystr;
       end_date=endDate.split("-");
       endyearstr= Number(end_date[0]);
       endmonthstr=Number(end_date[1]);
       enddaystr=Number(end_date[2]);
     var  s_enddate=endyearstr+"/"+endmonthstr+"/"+enddaystr;
     var  date1 = new   Date(s_date).getTime();   
     var  date2 = new   Date(s_enddate).getTime();    
     var  iDays = ((date2-date1)/(24*60*60*1000)); var s_datelist="";
     for (i=1;i<=iDays;i++)
     { 
      var   myweekday=new  Date(s_date).getDay();       if((myweekday == 0) || (myweekday == 6)) 
      {
      Weekdaycount++;
      }
      else  
      {
      noWeekdaycount++
      }  var a = new Date(s_date);
      a = a.valueOf();
      a=a+(24*60*60*1000);
      a = new Date(a);
      s_date=a.getFullYear()+"/"+(a.getMonth()+ 1)+"/"+a.getDate()
     if (i<iDays )
     {
      s_datelist=s_datelist+a.getFullYear()+"-"+(a.getMonth()+ 1)+"-"+a.getDate()+","
      }
     else
     {
     s_datelist=s_datelist+a.getFullYear()+"-"+(a.getMonth()+ 1)+"-"+a.getDate()
     }
     
    }
      s_datelist=startdate+","+s_datelist
     alert('查询日期范围是:'+s_datelist+'!!!');
      //dateinnhtml=dateinnhtml+'平日共有'+noWeekdaycount+'天,周末共有:'+Weekdaycount+'天,合计共'+iDays+'天';
     // document.getElementById('listdate').innerHTML=dateinnhtml;
      }</script>
      

  2.   

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>两个日期计算</title>
    <BODY ONLOAD="datediffstr()">
    <script language="javascript">
     function datediffstr()
     {
     var  Weekdaycount=0;
     var  noWeekdaycount=0;
     var  startdate="2008-08-01";
     var  endDate="2008-08-05";
     var  dateinnhtml="";
       start_date=startdate.split("-");
       yearstr= Number(start_date[0]);
       monthstr=Number(start_date[1]);
       daystr=Number(start_date[2]);
     var s_date=yearstr+"/"+monthstr+"/"+daystr;
     var s_ttdate=yearstr+"-"+monthstr+"-"+daystr;
       end_date=endDate.split("-");
       endyearstr= Number(end_date[0]);
       endmonthstr=Number(end_date[1]);
       enddaystr=Number(end_date[2]);
     
     var  s_enddate=endyearstr+"/"+endmonthstr+"/"+enddaystr;
     var  date1 = new   Date(s_date).getTime();   
     var  date2 = new   Date(s_enddate).getTime();    
     var  iDays = ((date2-date1)/(24*60*60*1000)); var s_datelist="";
     for (i=1;i<=iDays;i++)
     { 
      var   myweekday=new  Date(s_date).getDay();       if((myweekday == 0) || (myweekday == 6)) 
      {
      Weekdaycount++;
      }
      else  
      {
      noWeekdaycount++
      }  var a = new Date(s_date);
      a = a.valueOf();
      a=a+(24*60*60*1000);
      a = new Date(a);
      s_date=a.getFullYear()+"/"+(a.getMonth()+ 1)+"/"+a.getDate()
     if (i<iDays )
     {
      s_datelist=s_datelist+a.getFullYear()+"-"+(a.getMonth()+ 1)+"-"+a.getDate()+","
      }
     else
     {
     s_datelist=s_datelist+a.getFullYear()+"-"+(a.getMonth()+ 1)+"-"+a.getDate()
     }
     
    }
      s_datelist=s_ttdate+","+s_datelist
     alert('查询日期范围是:'+s_datelist+'!!!');
      //dateinnhtml=dateinnhtml+'平日共有'+noWeekdaycount+'天,周末共有:'+Weekdaycount+'天,合计共'+iDays+'天';
     // document.getElementById('listdate').innerHTML=dateinnhtml;
      }</script>
      

  3.   

    firefox不好用的原因,是因为firefox里面,getTime返回的是NaN,自己写一个吧,其实就是取得与 1970 年 1 月 1 日之间经过的毫秒数
      

  4.   

    修改一下,IE和FF都可以用了var start = "2008-12-20".split('-');
    var end = "2009-1-5".split('-');
    var d1 = new Date(Date.parse(start[1]+'/'+start[2]+'/'+start[0]));
    var d2 = new Date(Date.parse(end[1]+'/'+end[2]+'/'+end[0]));
    var span = 3600*24*1000;
    var dates = new Array();
    while(d1.getTime()<d2.getTime())
    {
    dates.push(d1.getFullYear()+"-"+(d1.getMonth()+1)+"-"+d1.getDate());
    d1 = new Date(d1.getTime()+span);
    }
    alert(dates.join('\r\n'));