分为三步。
第一步:获取原始日期后进行格式化,最终格式化为2019/7/25的格式。
//在Jquery里格式化Date日期时间数据
function timeStamp2String(time){
var datetime = new Date();
datetime.setTime(time);
var year = datetime.getFullYear();
var month = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
var date = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
//var hour = datetime.getHours()< 10 ? "0" + datetime.getHours() : datetime.getHours();
//var minute = datetime.getMinutes()< 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
//var second = datetime.getSeconds()< 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();
//return year + "-" + month + "-" + date+" "+hour+":"+minute+":"+second;
return year + "/" + month + "/" + date;
}
第二步:计算相差的日期的方法
function countWorkDay(sDay,eDay){
var s = sDay;
var e = eDay;
var s_t_w = s.getDay(), e_t_w = e.getDay();
//相差天数
var diffDay = (e - s) / (1000 * 60 * 60 * 24) + 1;
//如果开始日期为周六或者周日 需要调整相差天数
var diffWeekDay = diffDay - (s_t_w ==0?1:0)- (s_t_w ==6?2:0);
//计算有几个完整的周
var weeks = Math.floor(diffWeekDay / 7); //向下整除 4/3=1;
var i = weeks*5 + (e_t_w==6?5:e_t_w) + ( s_t_w >= 1 && s_t_w <= 5 ? (6-s_t_w):0);
var x = diffDay - weeks*2;
if(i<=x){
return i;
}else {
if(e_t_w==6){
x=x-1;
}
return x;
}
}
第三步:调用:
var x = countWorkDay(new Date(row.F_DATE_CREATE.split(" ")[0]) , new Date(timeStamp2String(new Date().getTime())));
传入的参数需要是Date,需将处理完的String转为Date再传入。
PS:这是参考了网上大佬的代码。可是一不小心把出处关掉了。记录下,默默感谢