在原文的基础上改的,适应我这边的需求,从周一开始到周日(姑且算个原创哈,原文链接在最下边)。
(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*3600000 是一星期的时间毫秒数,(JS中的日期精确到毫秒) time+=(weeks-1)*7*24*3600000; // 为日期对象 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*3600000; 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 += 1900var 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);//原代码使用的是roundreturn 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获取指定日期周数以及星期几的小例子,这个是从每周的周四开始计算的。

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

  1. js实现input的赋值,根据今天的日期获取本周的周一和周日的日期,获取当天日期

    实现input的赋值 如下所示,是文本框的html代码,实现input的赋值 <label>时间段:</label><input type="date" ...

  2. java获取两个时间之间的所有日期、月份、年份,返回列表

     需求描述 输入开始时间和结束时间,获取时间范围内的所有日期,月份.年份     (输入可以为"yyyy-MM-dd HH:mm:ss"或者"yyyy-MM-dd&quo ...

  3. js 获取当月的第一天和最后一天 日期格式化 获取距离上次的时间间隔

    1获取当月的第一天 function getCurrentMonthFirst() {var date = new Date()date.setDate(1)return date } 2.获取当月的 ...

  4. xe-utils 计算:年份、月份、周、天、每月天数、月的第几周、年的第几天、年的第几周、日期倒计时、日期至今差距计算、任意日期格式化

    使用 xe-utils 可以非常简单的处理任意日期之间的转换: 时区转换.年份.月份.周.天.每月天数.月的第几周.年的第几天.年的第几周.日期倒计时.任意日期格式化 查看 Github js日期转换 ...

  5. oracle 日期转换成毫秒数,ORACLE:毫秒与日期的相互转换,获取某天的信息

    毫秒转换为日期 SELECT TO_CHAR(1406538765000 / (1000 * 60 * 60 * 24) + TO_DATE('1970-01-01 08:00:00', 'YYYY- ...

  6. java 一周前日期_java获取当前时间前一周、前一月、前一年的时间

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar c = Calend ...

  7. 使用Calendar类获取指定日期所在年/月份、周第一天、最后一天

    最近做项目有涉及需要获取指定日期或当前日期所在月份和周第一和最后一天,结合网上的资料和自己项目开发记录,记录下用到的这些方法. 目录 1.获取指定年份的第一天和最后一天 2. 获取指定日期月份第一天和 ...

  8. mysql查询周数_MySQL如何获取一个指定日期所对应本年度的周数(WEEK函数)呢?

    摘要: 下文讲述MySQL数据库中获取指定日期对应的本年的周数信息的方法分享,如下所示: 实现思路: 采用week系统函数即可获取指定日期在日期所在年度的周数信息 week系统函数语法说明: week ...

  9. mysql小知识:根据指定日期,获取是当年第几周

    1.获取指定日期是当年第几周: SELECT WEEK(DATE_FORMAT('2021-01-06','%Y-%m-%d'),1) AS week 2.获取某周的开始日期和结束日期 SELECT ...

最新文章

  1. C++ Primer 5th笔记(chap 15 OOP)构造函数和拷贝控制
  2. 技术、管理和技术管理
  3. 系统分析之100亿级日志系统是怎么设计出来的?
  4. 取消对 null 指针“l”的引用。_彻底理解链表中为何使用二级指针或者一级指针的引用...
  5. 在线HTTP请求/响应头转JSON工具
  6. linux下搭建博客Day8
  7. 第6章 vector向量容器
  8. linux中安装程序的命令是,Linux安装软件命令是什么
  9. 在VirtualBox的虚拟机上安装和使用NCS2(intel movidius stick 2)
  10. javascript获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度
  11. 重庆文理学院计算机公众号,重庆文理学院各微信公众号影响力排行榜新鲜出炉啦!!!...
  12. 计算机系统仿真缩写,仿真语言
  13. 【敏捷5.2】用户故事的层次和用户故事地图
  14. Linux学习06---shell基础
  15. Weakly Supervised Object Localization:From CNN to Transformer、Weakly Supervised Semantic Segmentatio
  16. 在oracle符号,学在oracle数据库中插入特殊符号
  17. fairygui绑定android,FairyGUI在Cocos2d-x下的多平台接入和lua绑定
  18. spaceclaim简单建模4
  19. python 3.8+vscode 无法启动jupyter kernal问题
  20. sqlmap 检索 DBMS 信息

热门文章

  1. python在手机上如何模拟登录_用 Python 换个姿势「模拟登录」
  2. SQL Server 数据库之注册 SQL Server 服务器
  3. day10 【迭代器 数据结构】上课
  4. 有想象力的故事 More Story Less Theory
  5. linxu云安装mysql 7.0_CentOS 7.0下使用yum安装MySQL
  6. 安卓翻译——app组件
  7. 我用python爬情头,来哄女朋友开心
  8. CSDN --- 现实中的女程序媛
  9. spring面向切面aop拦截器
  10. 学学人家硅谷吧,看看人家的垃圾都去哪了!