今天工作时有碰到一段获取上一工作日的代码,获取上一工作日并将其转化为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; }这次每到月初时,都能显示正确的上个月月末日期。