<script>
function Dayminus(asStartvalue,asEndvalue){
loinStart = asStartvalue.split("-");
loinEnd   = asEndvalue.split("-");
var loStart = new Date(loinStart[0],loinStart[1]-1,loinStart[2],0,0,0,0);
var loEnd   = new Date(loinEnd[0],loinEnd[1]-1,loinEnd[2],0,0,0,0);
var days=(loEnd.getTime()-loStart.getTime())/(1000*24*3600);
if(days<0) days=-days;
return days;
}
alert(Dayminus('1989-5-4','1989-6-4'));
</script>

解决方案 »

  1.   

    给你我写的一个例子:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>计算两个日期之间的天数</title>
    </head>
    <body>
    <script language="javascript">
    var date1=new Date(2002,0,1),maxdate=new Date();
    var date2=new Date(2003,0,1),mindate=new Date();
    var betweendays=0;if (date1.getYear() > date2.getYear() || (date1.getYear() == date2.getYear() && date1.getMonth() > date2.getMonth()) || (date1.getYear() == date2.getYear() && date1.getMonth() == date2.getMonth() && date1.getDate() > date2.getDate()))
    {
    maxdate=date1;
    mindate=date2;
    }
    else
    {
    maxdate=date2;
    mindate=date1;
    }maxyear=maxdate.getYear();
    minyear=mindate.getYear();
    maxmonth=maxdate.getMonth();
    minmonth=mindate.getMonth();
    maxday=maxdate.getDate();
    minday=mindate.getDate();for (;minyear <= maxyear;minyear ++)
    {
    //处理不同的年份
    if (minyear != maxyear)
    {
    if (minyear % 4==0 && minyear % 100 !=0 || minyear % 400==0)
    betweendays=betweendays + 366;
    else
    betweendays=betweendays + 365;
    }
    else
    {
    //处理相同的年份
    for (;minmonth <= maxmonth;minmonth ++)
    {
    //处理不同的月份
    if (minmonth!=maxmonth)
    {
    switch (minmonth + 1)
    {
    case 1:
    betweendays=betweendays + 31;
    break;
    case 3:
    betweendays=betweendays + 31;
    break;
    case 5:
    betweendays=betweendays + 31;
    break;
    case 7:
    betweendays=betweendays + 31;
    break;
    case 8:
    betweendays=betweendays + 31;
    break;
    case 10:
    betweendays=betweendays + 31;
    break;
    case 12:
    betweendays=betweendays + 31;
    break;
    case 4:
    betweendays=betweendays + 30;
    break;
    case 6:
    betweendays=betweendays + 30;
    break;
    case 9:
    betweendays=betweendays + 30;
    break;
    case 11:
    betweendays=betweendays + 30;
    break;
    case 2:
    if (minyear % 4==0 && minyear % 100 !=0 || minyear % 400==0)
    betweendays=betweendays + 29;
    else
    betweendays=betweendays + 28;
    break;

    }
    //处理相同的月份
    else
    betweendays=betweendays + (maxday - minday);
    }
    }
    }
    alert("两个日期之间的天数是:" + betweendays);
    </script>
    </body>
    </html>
    注意:日期对象的月份部分是用0来表示1月,11表示12月,其它月份依次类推。
      

  2.   

    看来,“ seabell(百合心) ”的方法比较好,学习,呵呵