在线等,JS计算工作日差不算周末 本帖最后由 u011120650 于 2014-08-20 09:01:00 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function jisuan(a,b){ a = a.replace(/^\s*/gi,''); b = b.replace(/^\s*/gi,''); if (!/^\d{4}-\d{1,2}-\d{1,2}(?!\d)/gi.test(a) || !/^\d{4}-\d{1,2}-\d{1,2}(?!\d)/gi.test(b)) { alert('非法的日期格式'); return; } var d1_part = a.split('-'); var d2_part = b.split('-'); var d1 = new Date(d1_part[0],d1_part[1]*1-1,d1_part[2]); var d2 = new Date(d2_part[0],d2_part[1]*1-1,d2_part[2]); var j1 = d1>d2?d1:d2; var j2 = d1>d2?d2:d1; j1 = j1.getDay()==6?new Date(j1.getTime()-1*24*60*60*1000):(j1.getDay()==0?new Date(j1.getTime()-2*24*60*60*1000):j1); j2 = j2.getDay()==6?new Date(j2.getTime()+2*24*60*60*1000):(j2.getDay()==0?new Date(j2.getTime()+1*24*60*60*1000):j2); var sum = 0; //alert(j1.getDay() + '\n' +j2.getDay()+'\n'+j1 + '\n' + j2 + '\n' + sum); if (j1.getDay()>1) { sum += j1.getDay()-1; j1 = new Date(j1.getTime()-(j1.getDay()-1)*24*60*60*1000); } //alert(j1.getDay() + '\n' +j2.getDay()+'\n'+j1 + '\n' + j2 + '\n' + sum); if (j2.getDay()>1) { sum -= j2.getDay()-1; j2 = new Date(j2.getTime()-(j2.getDay()-1)*24*60*60*1000); } sum = (j1-j2)/24/60/60/1000/7*5+sum+1 //alert(j1.getDay() + '\n' +j2.getDay()+'\n'+j1 + '\n' + j2 + '\n' + sum); return sum; } alert(jisuan('2014-8-1','2014-8-31')); 菜鸟求救。。 想做个导航点击后添加样式。、、、 求助 JS月份相减 帮我看下代码,哪里有问题? JS截取字符串 在线打开、编辑、保存word文档 用js获取字符串内指定字符怎么写呢 asp.net和JAVASCRIPT tree的问题 正则表达式问题,很简单,但是就是不知道哪里错了 我要加入前景色为白色的javascript文字,怎么办呢 这样实现文本框的出现和隐藏 在线等,求大神解密 40分 node.js 部署问题 如何加密
a = a.replace(/^\s*/gi,'');
b = b.replace(/^\s*/gi,'');
if (!/^\d{4}-\d{1,2}-\d{1,2}(?!\d)/gi.test(a) || !/^\d{4}-\d{1,2}-\d{1,2}(?!\d)/gi.test(b))
{
alert('非法的日期格式');
return;
}
var d1_part = a.split('-');
var d2_part = b.split('-');
var d1 = new Date(d1_part[0],d1_part[1]*1-1,d1_part[2]);
var d2 = new Date(d2_part[0],d2_part[1]*1-1,d2_part[2]);
var j1 = d1>d2?d1:d2;
var j2 = d1>d2?d2:d1;
j1 = j1.getDay()==6?new Date(j1.getTime()-1*24*60*60*1000):(j1.getDay()==0?new Date(j1.getTime()-2*24*60*60*1000):j1);
j2 = j2.getDay()==6?new Date(j2.getTime()+2*24*60*60*1000):(j2.getDay()==0?new Date(j2.getTime()+1*24*60*60*1000):j2);
var sum = 0;
//alert(j1.getDay() + '\n' +j2.getDay()+'\n'+j1 + '\n' + j2 + '\n' + sum);
if (j1.getDay()>1)
{
sum += j1.getDay()-1;
j1 = new Date(j1.getTime()-(j1.getDay()-1)*24*60*60*1000);
}
//alert(j1.getDay() + '\n' +j2.getDay()+'\n'+j1 + '\n' + j2 + '\n' + sum);
if (j2.getDay()>1)
{
sum -= j2.getDay()-1;
j2 = new Date(j2.getTime()-(j2.getDay()-1)*24*60*60*1000);
}
sum = (j1-j2)/24/60/60/1000/7*5+sum+1
//alert(j1.getDay() + '\n' +j2.getDay()+'\n'+j1 + '\n' + j2 + '\n' + sum);
return sum;
} alert(jisuan('2014-8-1','2014-8-31'));