JS获取指定的时间,比如上周/本周五

在这里先说明一下,月份,周几都是从0开始的这一点是需要我们注意的.

本周,上周的开始结束时间

function getTime(n){
				var now=new Date();
				var year=now.getFullYear();
				//因为月份是从0开始的,所以获取这个月的月份数要加1才行
				var month=now.getMonth()+1;	
				var date=now.getDate();
				var day=now.getDay();
				console.log(date);
				//判断是否为周日,如果不是的话,就让今天的day-1(例如星期二就是2-1)
				if(day!==0){
					n=n+(day-1);
				}
				else{
					n=n+day;
				}
				if(day){
					//这个判断是为了解决跨年的问题
					if(month>1){
						month=month;
					}
					//这个判断是为了解决跨年的问题,月份是从0开始的
					else{
						year=year-1;
						month=12;
					}
				}
				now.setDate(now.getDate()-n);				
				year=now.getFullYear();
				month=now.getMonth()+1;
				date=now.getDate();
				console.log(n);
				s=year+"年"+(month<10?('0'+month):month)+"月"+(date<10?('0'+date):date)+"日";
				return s;
			}
/***参数都是以周一为基准的***/
			//上周的开始时间
			console.log(getTime(7));
			//上周的结束时间
			console.log(getTime(1));
			//本周的开始时间
			console.log(getTime(0));
			//本周的结束时间
			console.log(getTime(-6));

上个月的结束时间

解决思路:

1.用户可以选择是否传入时间串,如果传入的话,就按传入的时间串定义时间,如果不是的话,就按当前时间来定义时间

2.判断当前的月份或者要判断的时间的当前月是否是1月份,如果是的话,那么年份就要-1,上个月的月份就是12月份

3.如果不是一月份的话,那么年份就不要-1,因为是同一年,所以只要月份-1就可以了

4.获取最后一天思路是:获取下个月第一天离1970年的毫秒数,然后减去一天时间的毫秒数,就是这个月的最后一天离1970年的毫秒数,根据这个毫秒数计算即可

function getMonth(dateStr){
                	let last_year=0,last_month=0,last_date=0,now=''
                	if(dateStr){
                		now=new Date(dateStr)
                	}
                	else{
                		now=new Date()
                	}
                	
                	let year=now.getFullYear()
                	let month=(now.getMonth()+1).toString().padStart(2, '0')
                	let date=now.getDate().toString().padStart(2, '0')
                	
                	if(month==1){
                		last_year=year-1
                		last_month=12
                		last_date=new Date(last_year,last_month,1)
                		return `${last_year}:${last_month}:${(new Date(last_date.getTime()-1000*60*60*24)).getDate()}`
                	}
                	else{
                		last_date=new Date(year,month-1,1)
                		return `${year}:${(month-1).toString().padStart(2,0)}:${(new Date(last_date.getTime()-1000*60*60*24)).getDate()}`
                	}
                }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值