今天工作时有碰到一段获取上一工作日的代码,获取上一工作日并将其转化为yyMMdd格式的字符串。 如2015年9月1日,转化为20150901。
这里只是简单地获取周一至周五的工作日。
//获取上一工作日
function getLastWorkDate(date){
var dateInt = parseInt(date.Format("yyyyMMdd"));
var yesterday = dateInt - 1;
var day = date.getDay();
if(day=="0"){
yesterday = dateInt - 2;
}else if(day=="1"){
yesterday = dateInt - 3;
}
return yesterday;
}
然后测试的时候发现,每到月初时获取上个月的日期是20150900,有这个问题。
后来重新写了个方法能过正常地获取日期。如下:
//获取上一工作日
//修复月初时工作日显示为0的问题,mod by rj08zhou 2015/09/02
function getLastWorkDate(date){
var yesterday = new Date();
if(yesterday.getDay() == 0){
yesterday.setDate(date.getDate()-2);
}else if(yesterday.getDay() == 1){
yesterday.setDate(date.getDate()-3);
}else{
yesterday.setDate(date.getDate()-1);
}
var dateInt = parseInt(yesterday.Format("yyyyMMdd"));
return dateInt;
}
这次每到月初时,都能显示正确的上个月月末日期。