根据年份获取周次,根据周次获取日期范围,获取当前年份,周次列表信息。

根据年份获取周次,根据周次获取日期范围,获取当前年份,周次列表信息。在原文的基础上改的 适应我这边的需求 从周一开始到周日 姑且算个原创哈 原文链接在最下边 1 根据年份获取周次 2 获取当前年份周次 3 根据选择周次获取日期时间范围 谁有更简单的方法也告知下 一起参详参详 function getNowFormat theDate var day

大家好,我是讯享网,很高兴认识大家。 在原文的基础上改的,适应我这边的需求,从周一开始到周日(姑且算个原创哈,原文链接在最下边)。
(1)根据年份获取周次
(2) 获取当前年份周次

(3) 根据选择周次获取日期时间范围

谁有更简单的方法也告知下,一起参详参详。

function getNowFormatDate(theDate){ var day = theDate; var Year = 0; var Month = 0; var Day = 0; var CurrentDate = ""; // 初始化时间 Year= day.getFullYear();// ie火狐下都可以 Month= day.getMonth()+1; Day = day.getDate(); CurrentDate += Year + "-"; if (Month >= 10) { CurrentDate += Month + "-"; } else { CurrentDate += "0" + Month + "-"; } if (Day >= 10 ){ CurrentDate += Day ; } else { CurrentDate += "0" + Day ; } return CurrentDate; } //这个方法将取得某年(year)第几周(weeks)的星期几(weekDay)的日期 function getXDate(year,weeks,weekDay){ // 用指定的年构造一个日期对象,并将日期设置成这个年的1月1日 // 因为计算机中的月份是从0开始的,所以有如下的构造方法 var date = new Date(year,"0","1"); // 取得这个日期对象 date 的长整形时间 time var time = date.getTime(); // 将这个长整形时间加上第N周的时间偏移 // 因为第一周就是当前周,所以有:weeks-1,以此类推 // 7*24* 是一星期的时间毫秒数,(JS中的日期精确到毫秒) time+=(weeks-1)*7*24*; // 为日期对象 date 重新设置成时间 time date.setTime(time); return getNextDate(date,weekDay); } // 这个方法将取得 某日期(nowDate) 所在周的星期几(weekDay)的日期 function getNextDate(nowDate,weekDay){ // 0是星期日,1是星期一,... weekDay%=7; var day = nowDate.getDay(); var time = nowDate.getTime(); var sub = weekDay-day; if(sub <= 0){ sub += 7; } time+=sub*24*; nowDate.setTime(time); return nowDate; } function isInOneYear(_year,_week){ if(_year == null || _year == '' || _week == null || _week == ''){ return true; } var theYear = getXDate(_year,_week,7).getFullYear(); if(theYear != _year){ return false; } return true; } // 获取日期范围显示 function getDateRange(_year,_week){ var beginDate; var endDate; if(_year == null || _year == '' || _week == null || _week == ''){ return ""; } beginDate = getXDate(_year,_week,1); endDate = getXDate(_year,(_week - 0 + 1),7); return getNowFormatDate(beginDate) + " 至 "+ getNowFormatDate(endDate); } //日期处理 function dateRange(obj){ //获取当前年 var year = $("#yearId").val(); if(isInOneYear(year,obj.value)){ var showDate = getDateRange(year,obj.value); document.getElementById("_dateRange_import").value=showDate; }else{ alert(year+"年无"+obj.value+"周,请重新选择"); return; } }

讯享网
讯享网</pre><pre name="code" class="javascript">/  * 获取当前年份共有多少周次(本次未用到)  */ function getNumOfWeeks(){   var myDate = new Date();     var year = myDate.getFullYear();  //获取当前年   var d=new Date(year,0,1);    var yt=(( year%4==0 && year%100!=0) || year%400==0)? 366:365;     var allwk = Math.ceil((yt-d.getDay())/7.0);   return allwk; }
//获取当前日期在当前年第几周函数封装 function theWeek() { var totalDays = 0; now = new Date(); years = now.getYear() if (years < 1000) years += 1900 var days = new Array(12); days[0] = 31; days[2] = 31; days[3] = 30; days[4] = 31; days[5] = 30; days[6] = 31; days[7] = 31; days[8] = 30; days[9] = 31; days[10] = 30; days[11] = 31; //判断是否为闰年,针对2月的天数进行计算 if (Math.round(now.getYear() / 4) == now.getYear() / 4) { days[1] = 29 } else { days[1] = 28 } if (now.getMonth() == 0) { totalDays = totalDays + now.getDate(); } else { var curMonth = now.getMonth(); for (var count = 1; count <= curMonth; count++) { totalDays = totalDays + days[count - 1]; } totalDays = totalDays + now.getDate(); } //得到第几周 var week = Math.ceil(totalDays / 7);//原代码使用的是round return week; } //根据选择年份获取周次 function getWeeks(obj){ //年份变更,更改周次对应日期 $("#_dateRange_import").val(""); var year = obj.value; var d=new Date(year,0,1); var yt=(( year%4==0 && year%100!=0) || year%400==0)? 366:365; var allwk = Math.ceil((yt-d.getDay())/7.0); //获取当前年份,判断选择年份是否是当前年份 var myDate = new Date(); var curYear = myDate.getFullYear(); var curweek = document.getElementById("showweeks"); if(curYear==year){//如果是当前年份,获取当前日子的周次 var theweek = theWeek(); var str = ""; str+="周次:<select id=\"dateSearch\" οnchange=\"dateRange(this)\"><option value=\"\">请选择周次</option>"; for(var i=theweek;i<=allwk;i++){ str+="<option value="+i+">第"+i+"周</option>" ; } str+= "</select>"; curweek.innerHTML = str ; }else{//如果不是获取年份内的所有周次值 var str = ""; str+="周次:<select id=\"dateSearch\"οnchange=\"dateRange(this)\"><option value=\"\">请选择周次</option>"; for(var i=1;i<=allwk;i++){ str+="<option value="+i+">第"+i+"周</option>" ; } str+= "</select>"; curweek.innerHTML = str ; } } 

这个本放在最上边的。直接搁这儿啦。

<jsp:useBean id="today" class="java.util.GregorianCalendar" /> 


讯享网


讯享网<table> <tr> <td> 年份 : <select id="yearId" οnchange="getWeeks(this)" > <c:forEach begin="${today.get(1)}" end="2020" var="i" step="1"> <option value="<c:out value='${i}'/>"><c:out value='${i}'/>年</option> </c:forEach> </select> </td> <td id="showweeks"> 周次: <select id="dateSearch" οnchange="dateRange(this)"> <option value="">请选择周次</option> <c:forEach begin="${today.get(3)}" end="52" var="i" step="1"> <option value="<c:out value='${i}'/>">第<c:out value='${i}'/>周</option> </c:forEach> </select> </td> <td> 时间段:<input id ="_dateRange_import" readonly="readonly" type="text" /> </td> </tr> </table>


原文链接: js获取指定日期周数以及星期几的小例子,这个是从每周的周四开始计算的。

小讯
上一篇 2025-03-24 11:13
下一篇 2025-03-12 14:26

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/44482.html