/*****************************************************************
    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);
}

解决方案 »

  1.   

    to ghlfllz(风流浪子):谢谢,这个问题我以前也考虑过好久,用很差的方法实现的,想不到可以这样简单,连闰年和月份都不用考虑。
      

  2.   

    比如:  
     str1  =  "2002-01-20"  
     str2  =  "2002-10-11"  
    怎样用javaScript计算出str1与str2之间相差的天数?  
    ---------------------------------------------------------------  
     
    <html>  
    <head>  
    <meta  http-equiv="Content-Type"  content="text/html;  charset=gb2312">  
    <title></title>  
    </head>  
     
    <body>  
    <button  onClick="btnCount_Click()">计算相差天数</button>  
    <script  language="JavaScript">  
     
       function  btnCount_Click(){  
           s1  =  "2002-1-10"  
           s2  =  "2002-10-1"  
           alert(DateDiff(s1,s2))  
       }  
     
       //计算天数差的函数,通用  
       function  DateDiff(sDate1,  sDate2){    //sDate1和sDate2是2002-12-18格式  
           var  aDate,  oDate1,  oDate2,  iDays  
           aDate  =  sDate1.split("-")  
           oDate1  =  new  Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0])    //转换为12-18-2002格式  
           aDate  =  sDate2.split("-")  
           oDate2  =  new  Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0])  
           iDays  =  parseInt(Math.abs(oDate1  -  oDate2)  /  1000  /  60  /  60  /24)    //把相差的毫秒数转换为天数  
           return  iDays  
       }    
     
    </script>  
    </body>  
    </html>