Jquery获取某年月对应的每周的周一到周末的日期

这篇主要是项目中要做获取本月的日期,并将本月分成周,并显示出来周的周一到周日的日期

1,先获取要分解的某年月日的日期(随便某个月的某一天都行),将他拆分成年 ,月 ,日。date是参数。

//将日期拆分年月日
function splitDate(date){
	var newdate = date.split("-");
	var year = newdate[0];
	var month = newdate[1];
	var day = newdate[2];
	return {year:year,month:month,day:day}
}

2,再将拆分的年月日放在这个方法中,获取本月有几周。

/**
 * 获取本月有几周  将拆分的年月日放在这个方法参数中,返回本月有几周
 * var dates = splitDate(begintime);
 * dates.year, dates.month, dates.day将拆分的年月日放再里面,获取的key
 * @returns
 */
function getWeeks(year, month, day) {
   const d = new Date()
   // 该月第一天
   d.setFullYear(2018, 6, 1)
   let w1 = d.getDay()
   if (w1 === 0) {
     w1 = 7
   }
   // 该月天数
   d.setFullYear(2018, 7, 0)
   const dd = d.getDate()
   // 该月第一个周一
   let d1
   if (w1 !== 1) {
     d1 = 7 - w1 + 2
   } else {
     d1 = 1
   }
   const WEEK_NUB = Math.ceil((dd - d1 + 1) / 7)
   return WEEK_NUB
}

3,再将获取年月放在次方法中,w表示第几周,将拆分的年,月放在y,m中

//获取每周的周一,周末,w表示第几周,将获得本月有几周进行循环,将拆分的年,月放在y,m中
function getInfo_days(y, m, w) {
    var dObj = new Date(),
        day, start, end,
        oneDay = 24 * 3600 * 1000;
    dObj.setYear(+y);
    dObj.setMonth(m - 1);
    dObj.setDate(1);
    day = dObj.getDay();
    start = dObj.getTime() + (w - 1) * 7 * oneDay - (day - 1) * oneDay;
    end = start + 6 * oneDay;
    // console.log(new Date(start));
    start = new Date(start);
    start = start.getFullYear() + '/' + fillZero(start.getMonth() + 1) + '/' + fillZero(start.getDate());
    end = new Date(end);
    end = end.getFullYear() + '/' + fillZero(end.getMonth() + 1) + '/' + fillZero(end.getDate());
    return {start: start, end: end};
}
function fillZero(num) {
    return num < 10 ? '0' + num : num;
}

4,js代码示例

/**
 * 将getInfo_days()方法中的参数放入相应的数据,w填写循环次数就行
 * @returns
 */
function getInfo_2(){
	var dates = splitDate(begintime);
	var days = getWeeks(dates.year, dates.month, dates.day);//获取本月几周
	for(var i = 0; i< days; i++){
		var obj = getInfo_days(dates.year, dates.month, i+1);//获取每周日期
		$("	<div class='d-0'>"+
			"	<div class='spacing1'><div class='deletegoal' onclick='emptyGoal(this)'>        
             清空</div></div>"+
			"	<div class='d-1'>"+
			"		<div class='d-1-0'>"+
			"			<div class='d-1-1'>"+
			"				"+obj.start+" "+	//开始时间
			"			</div>"+
			"			<div class='d-1-2'>"+
			"				"+obj.end+" "+	//结束时间
			"			</div>"+
			"		</div>"+
			"		<div class='d-1-3' onclick=jumpPage_2(this) tarId='12546'>"+
			"			第"+"一,二,三,四,五".split(",")[i]+"周"+
			"		</div>"+
			"	</div>"+
			"	<div class='d-2'>"+
			"		<input class='tar_input' "+str_d+" type='text' onblur='editExe_perfrom(this)'>"+
			"	</div>"+
			"	<div class='d-3'>"+
			"		<input class='in_input f2' onclick=inteChange(this,2) onblur=inteChange(this,1) type='tel'>"+
			"	</div>"+
			"</div>").appendTo($(".m-main"))
	}
}

展现效果如下

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值