简单写了一个,没仔细测,你看看吧alert(datediff("2008-8-1","2008-8-9"));
function datediff(s,e)
{
s=s.split("-");
e=e.split("-");s = new Date(s[0],s[1],s[2]);
e = new Date(e[0],e[1],e[2]);
var freeday=0+(s.getUTCDay()==5?1:(s.getUTCDay()==6?1:0))+(e.getUTCDay()==5?1:(e.getUTCDay()==6?1:0));
var alldays= Math.round((e.getTime()-s.getTime())/(1000*60*60*24));
return alldays-(freeday+Math.round((alldays-(5-s.getUTCDay()))/7)+1+Math.round((alldays-(6-s.getUTCDay()))/7)+1);
}

解决方案 »

  1.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <script type="text/javascript">
    function $(id){
    return document.getElementById(id);
    }
    function cal(){
    var d1 = $("date1").value.split("-");
    var d2 = $("date2").value.split("-");

    var date1 = new Date(d1[0], d1[1]-1, d1[2]);
    var date2 = new Date(d2[0], d2[1]-1, d2[2]);

    var day = (date2.getTime() - date1.getTime()) / (1000 * 60 * 60 * 24);

    var w1 = date1.getDay();
    var w2 = date2.getDay();

    var w = parseInt(day / 7) * 2;
    w += w1 > w2 ? 2 : w1 == 0 ? 1 : 0;

    $("result").value = day - w + 1;
    }
    </script>
    </head>
    <body>
    <input type="text" id="date1" name="date1" value="2008-12-21" /> -
    <input type="text" id="date2" name="date2" value="2008-12-24" /> 
    <input type="text" id="result" name="result" value="" />
    <input type="button" id="btn" name="btn" value="计算" onclick="cal();" />
    </body>
    </html>