javascript获取上一工作日

本文讨论了如何解决在获取上一工作日的代码中遇到的月初问题,特别是当日期显示为错误的0值时。通过提供两个方法来解决此问题,文章详细解释了每个方法的工作原理,并在最后提供了修正后的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值