通过年月获取当月的第一天和最后一天

研究同事代码发现这个方法,原方法是用来获取上月、本月、下月的yyyy-mm-dd格式日期,

getMonth(type, months) {
	    //getMonth(type,months)  //type为字符串类型,有两种选择,"s"代表开始,"e"代表结束,months为数字类型,不传或0代表本月,-1代表上月,1代表下月
	  	//getMonth("s",1)  //得到下月第一天的yyyy-mm-dd格式日期
	    //getMonth("e",1)  //得到下月最后一天的yyyy-mm-dd格式日期
	
	    var d = new Date();
	    var year = d.getFullYear();
	    var month = d.getMonth() + 1;
	    if (Math.abs(months) > 12) {
	        months = months % 12;
	    };
	    if (months != 0) {
	        if (month + months > 12) {
	            year++;
	            month = (month + months) % 12;
	        } else if (month + months < 1) {
	            year--;
	            month = 12 + month + months;
	        } else {
	            month = month + months;
	        };
	    };
	    month = month < 10 ? "0" + month : month;
	    var date = d.getDate();
	    var firstday = year + "-" + month + "-" + "01";
	    var lastday = "";
	    if (month == "01" || month == "03" || month == "05" || month == "07" || month == "08" || month == "10" ||
	        month == "12") {
	        lastday = year + "-" + month + "-" + 31;
	    } else if (month == "02") {
	        if ((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0 && year % 400 == 0)) {
	            lastday = year + "-" + month + "-" + 29;
	        } else {
	            lastday = year + "-" + month + "-" + 28;
	        };
	    } else {
	        lastday = year + "-" + month + "-" + 30;
	    };
	    var day = "";
	    if (type == "s") {
	        day = firstday;
	    } else {
	        day = lastday;
	    };
	    return day;
	},

业务需要改为获取指定月份获取格式日期,记录一下,下次可以复用

getMonth(type, year, month) {
	 	//getMonth(type,year,months)  //type为字符串类型,有两种选择,"s"代表开始,"e"代表结束
	    //getMonth("s",2020,5)  //得到该月第一天的yyyy-mm-dd格式日期
	    //getMonth("e",2020,5)  //得到该月最后一天的yyyy-mm-dd格式日期
	    month = month < 10 ? "0" + month : month;
	    var firstday = year + "-" + month + "-" + "01";
	    var lastday = "";
	    if (month == "01" || month == "03" || month == "05" || month == "07" || month == "08" || month == "10" ||
	        month == "12") {
	        lastday = year + "-" + month + "-" + 31;
	    } else if (month == "02") {
	        if ((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0 && year % 400 == 0)) {
	            lastday = year + "-" + month + "-" + 29;
	        } else {
	            lastday = year + "-" + month + "-" + 28;
	        };
	    } else {
	        lastday = year + "-" + month + "-" + 30;
	    };
	    var day = "";
	    if (type == "s") {
	        day = firstday;
	    } else {
	        day = lastday;
	    };
	    return day;
	},
	console.log(this.getMonth('s', 2020,4))
	console.log(this.getMonth('e', 2020,4))
	----------------------
	2020-05-01
	2020-05-31
	----------------------
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值