时间处理

 

周粒度处理

  时间控件

<ul class="fl" style="margin-left: 20px;">
		<li class="fl TimeFiledfl">
			<input id="timeField_week" class="Wdate TimeFiled fl" />  
		</li>
</ul>

 js处理 

function initTime(){
	/***********周粒度处理*********************/
	var today = new Date();
	var weekToday = new Date();//获取上周最大日期
	if(today.getDay()==0){//星期日
		weekToday.setDate(weekToday.getDate()-7);
	}else{
		weekToday.setDate(weekToday.getDate()-weekToday.getDay());
	}
	
	var tY = today.getFullYear();
	var tM = today.getMonth()+1;
	var tD = today.getDate();
	var week = getYearWeek(tY,tM,tD);
	if(week=='01'){
		tY = tY - 1;
		week = getNumOfWeeks(tY);
	}else{
		week = week - 1;
	}
	week = week<10?("0"+week):week;
	$("#timeField_week").val(tY+"年第"+week+'周');
	$('#timeField_week').bind('focus',function(){
		WdatePicker({isShowWeek:true,errDealMode:3,maxDate:weekToday.format("yyyy-MM-dd"),autoPickDate:true,firstDayOfWeek:1,
		onpicked:function() {
			if($dp.cal.getP('w')==0){
				$dp.$('timeField_week').value=$dp.cal.getP('y')+'年第'+eval($dp.cal.getNewP('W')+"-1")+'周';
			}else{
				$dp.$('timeField_week').value=$dp.cal.getP('y')+'年第'+$dp.cal.getNewP('W')+'周';
			}
		}
	});});
}

/*******************周粒度处理***************************/
var getYearWeek = function (a, b, c) { 
	/* 
	date1是当前日期 
	date2是当年第一天 
	d是当前日期是今年第多少天 
	用d + 当前年的第一天的周差距的和在除以7就是本年第几周 
	*/
	var date1 = new Date(a, parseInt(b) - 1, c), date2 = new Date(a, 0, 1), 
	d = Math.round((date1.valueOf() - date2.valueOf()) / 86400000); 
	return Math.ceil((d + ((date2.getDay() + 1) - 1)) / 7); 
};

//求一年总共有多少周
function getNumOfWeeks(year){
	var d=new Date(year,0,1);
	var yt=( ( year%4==0 && year%100!=0) || year%400==0)? 366:365; 
	return Math.ceil((yt-d.getDay())/7.0);
}

获取某年某周对应的起止日期

//weekTime -- 201724 (2017年第24周)
function getWeekStartDay(weekTime){
	var year = weekTime.substring(0,4);
	var week = weekTime.substring(4,6);
	var cdate=new Date();
	cdate.setFullYear(year);
	cdate.setMonth(0);
	cdate.setDate(1);
	var cweek = 7-cdate.getDay()+1;
	cdate.setDate(1+cweek);
	console.log(cdate);
	var oneDayLong = 24 * 3600 * 1000;
	var ctime = cdate.getTime()+oneDayLong*(week-2)*7;
	var oToday = new Date();
	oToday.setTime(ctime);
	var currentDay=oToday.getDay();
	if(currentDay==0){currentDay=7;}
	var mondayTime=oToday.getTime()-(currentDay-1)*24*60*60*1000; //对应周起始日期
	//var sundayTime=oToday.getTime()+(7-currentDay)*24*60*60*1000; //对应周结束日期
	return new Date(mondayTime);
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值