简单写了一个,没仔细测,你看看吧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);
}
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);
}
<!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>