`

js 下拉时间段--星期

    博客分类:
  • js
 
阅读更多
<td style="font: normal 宋体; font-size: 9pt;" height="40">
				查询年份: 
				<input type="text" id="time" name="time" onChange="week(3)" class="Wdate" value='<%=now%>' style="font: normal 宋体; font-size: 9pt; width: 80px" onfocus="WdatePicker({readOnly:true,dateFmt:'yyyy'})" />
				&nbsp;&nbsp;&nbsp;查询时间: 
				<select id="week" value="" style="font: normal 宋体; font-size: 9pt; width: 220px" onChange="calcu(3)"></select>
				<input type="button" id="fanhui" name="fanhui" style="font: normal 宋体; font-size: 9pt;" value="查询" onClick="calcu(2);">
				<label id="label"></label>
			</td>

 
<script type="text/javascript">
	var startDate;
	var endDate;
	
	function calcu(objct) {
		var nowYear =  document.getElementById("time").value;//当前年
		//-------------------------------------------------------------------------------------
		var yearStart = new Date(parseInt(nowYear), 0, 1); //设置该年1.1.
		var firstDay = yearStart.getDay(); //星期
		var yearEnd = new Date(parseInt(nowYear), 11, 31); //设置该年12.31.
		var endDay = yearEnd.getDay(); //星期
		//-------------------------------------------------------------------------------------    
		//判断输入是否超过最大周次.
		var maxWeek = 52; //该年最大周次.1.1.在周一到周四,则为该年第一周,否则为上年最后一周.
		if ((firstDay >= 1 && firstDay <= 4)
				&& (endDay == 0 || endDay == 4 || endDay == 5 || endDay == 6)) {
			maxWeek = 53; //1.1.和12.31.都在本年,则该年有53周,否则52周
		} else {
			maxWeek = 52;
		}
		//----------------------------------------------------------------------------------------

		//-------------------------------------------------------------------------------------
		//对1.1.所在周的前后几天特殊处理.
		if (firstDay >= 0 && firstDay <= 4) {
			other = firstDay - 1;
		} else {
			other = firstDay - 8;
		}
		//-------------------------------------------------------------------------------------

		//-------------------------------------------------------------------------------------
		//时间调整,得出要计算周的起/始时间.    
		//距离当年1.1.的总天数
		days = (parseInt(document.getElementById("week").value, 10) - 1) * 7
				- other;
		//转换成Ms.......
		var oneMinute = 60 * 1000;
		var oneHour = oneMinute * 60;
		var oneDay = oneHour * 24;
		//1.1.至1/1/70的毫秒数
		var dateInMs = yearStart.getTime();
		//当前所选周第一天离1/1/70的毫秒数.
		dateInMs += oneDay * days;
		//日期调整(设置1/1/70至今的毫秒数)
		yearStart.setTime(dateInMs);
		//当前所选周最后一天处理,同上.
		var weekEnd = new Date(parseInt(nowYear), 0, 1);
		var dateInMs1 = weekEnd.getTime();
		dateInMs1 += oneDay * (days + 6);
		weekEnd.setTime(dateInMs1);
		//-------------------------------------------------------------------------------------

		//-------------------------------------------------------------------------------------
		//月和日的处理,一位变两位,如:1->01.    
		var month = yearStart.getMonth() + 1;
		if (month < 10) {
			month = "0" + month;
		}
		var day = yearStart.getDate();
		if (day < 10) {
			day = "0" + day;
		}
		var month1 = weekEnd.getMonth() + 1;
		if (month1 < 10) {
			month1 = "0" + month1;
		}
		var day1 = weekEnd.getDate();
		if (day1 < 10) {
			day1 = "0" + day1;
		}
		//-------------------------------------------------------------------------------------
		startDate = nowYear + "-" + month + "-" + day;
		endDate = nowYear + "-" + month1 + "-" + day1;
		if(startDate > endDate){
			newNowYear = nowYear-1;
			startDate = newNowYear + "-" + month + "-" + day;
		}
		
		document.getElementById("label").innerHTML = "您选择的时间为:" + startDate
				+ " ~  " + endDate;
		submit(objct);
		//document.getElementById('Ifrmname1').src="http://localhost:8080<%=request.getContextPath()%>/ReportEmitter?rpt=/CISS/11.brt&params=startData="+startDate+";endData="+endDate;
		//-------------------------------------------------------------------------------------
	}
	
	
	function week(objct) {
		var sDate;
		var eDate;
		var dateInMs2;
		var nowYear = document.getElementById("time").value;
		//-------------------------------------------------------------------------------------

		var yearStart = new Date(parseInt(nowYear), 0, 1); //设置该年1.1.
		var firstDay = yearStart.getDay(); //星期
		var yearEnd = new Date(parseInt(nowYear), 11, 31); //设置该年12.31.
		var endDay = yearEnd.getDay(); //星期
		//-------------------------------------------------------------------------------------    
		//判断输入是否超过最大周次.
		var maxWeek; //该年最大周次.1.1.在周一到周四,则为该年第一周,否则为上年最后一周.
		if ((firstDay >= 1 && firstDay <= 4)
				&& (endDay == 0 || endDay == 4 || endDay == 5 || endDay == 6)) {
			maxWeek = 53; //1.1.和12.31.都在本年,则该年有53周,否则52周
		} else {
			maxWeek = 52;
		}
		

		//对1.1.所在周的前后几天特殊处理.
		if (firstDay >= 0 && firstDay <= 4) {
			other1 = firstDay - 1;
		} else {
			other1 = firstDay - 8;
		}
		
		//给select赋值
		var week = document.getElementById("week");
		week.options.length = 0;
		for ( var i = 1; i <= maxWeek; i++) {
			
			var days1 = (parseInt(i, 10) - 1) * 7 - other1;
			//转换成Ms.......
			var oneMinute = 60 * 1000;
			var oneHour = oneMinute * 60;
			var oneDay = oneHour * 24;
			//1.1.至1/1/70的毫秒数
			var dateInMs;
			//当前所选周第一天离1/1/70的毫秒数.
			if( i == 1){
				dateInMs = yearStart.getTime();
				dateInMs += oneDay * days1;
				dateInMs2 = yearStart.getTime();
				yearStart.setTime(dateInMs);
			}else{
				var dateInMs3 = dateInMs2 + oneDay * days1;
				yearStart.setTime(dateInMs3);
			}
			//日期调整(设置1/1/70至今的毫秒数)
			//yearStart.setTime(dateInMs);
			//当前所选周最后一天处理,同上.
			var weekEnd = new Date(parseInt(nowYear), 0, 1);
			var dateInMs1 = weekEnd.getTime();
			dateInMs1 += oneDay * (days1 + 6);
			weekEnd.setTime(dateInMs1);
			//-------------------------------------------------------------------------------------
		
			//-------------------------------------------------------------------------------------
			//月和日的处理,一位变两位,如:1->01.    
			var month = yearStart.getMonth() + 1;
			if (month < 10) {
				month = "0" + month;
			}
			var day = yearStart.getDate();
			if (day < 10) {
				day = "0" + day;
			}
			var month1 = weekEnd.getMonth() + 1;
			if (month1 < 10) {
				month1 = "0" + month1;
			}
			var day1 = weekEnd.getDate();
			if (day1 < 10) {
				day1 = "0" + day1;
			}
			//-------------------------------------------------------------------------------------
			sDate = nowYear + "-" + month + "-" + day;
			eDate = nowYear + "-" + month1 + "-" + day1;
			
			if(sDate > eDate){
				newNowYear = nowYear-1;
				sDate = newNowYear + "-" + month + "-" + day;
			}
			var y = document.createElement("option");
			y.text = "第" + i + "周 ("+sDate+"~"+eDate+")";
			y.value = i;
			try {
				week.add(y, null);
			} catch (ex) {
				week.add(y);
			}
		}
		var d1 = new Date();
		var d2 = new Date();
		d2.setMonth(0);
		d2.setDate(1);
		var rq = d1 - d2;
		//一年的第多少天
		var s1 = Math.ceil(rq / (24 * 60 * 60 * 1000));
		//一年中的某一周
		var s2 = Math.ceil(s1 / 7);
		document.getElementById('week').value = s2;
		//document.getElementById('week').innerHtml = "第" + s2 + "周()";
		calcu(objct);
		//-->
	}

	
	function submit(objct) {
		if(objct==3){
			
		}else{
			document.getElementById('Ifrmname1').src = "<%=request.getContextPath()%>/ReportEmitter?rpt=/cmwp/weeklyReport.brt&params=start_date="
				+ startDate + ";end_date=" + endDate + ";orgid= " + '<%=orgid%>' + ";plan_type=W";
		}
	}
	
	
//-->
</script>

 实现查询时间区间--以星期分开

  • 大小: 3.4 KB
分享到:
评论

相关推荐

    javascript下拉列表 显示时间

    在JavaScript编程中,下拉列表(Select...通过这种方式,我们可以实现一个完整的JavaScript下拉列表,其中包含了特定格式的日期,并且可以响应用户的交互。这个功能对于任何需要用户选择日期的网页应用都是非常实用的。

    一个用于日期和时间选择的VueJs控件支持范围选择

    Vue.js是一个渐进式的JavaScript框架,允许开发者构建用户界面。它强调声明式编程,使得代码更加简洁、可读性更强。Vue.js通过虚拟DOM(Document Object Model)来提高性能,减少不必要的DOM操作。 接着,我们来看...

    JavaScript-js宝典笔学习记.txt

    ### JavaScript-js宝典笔学习记知识点详解 #### 1. 输出语句 `document.write("")` 在JavaScript中,`document.write()` 方法用于将文本、HTML 表达式等直接写入到文档流中。通常用于页面加载时动态生成内容。例如...

    常用JavaScript语法100(超实用)

    - JavaScript 可以在多种环境中运行,包括浏览器端和服务器端(如 Node.js)。 - 浏览器端执行环境包括:`navigator`, `screen`, `history`, `location`, `document` 等对象。 ### 3. 获取和设置元素属性 - 使用 `...

    Layui动态生成select下拉选择框不显示的解决方法

    当用户选择“每星期”时,下拉选择框后面会显示另一组选择项,让用户选择星期几和具体时间。 HTML代码如下: ```html &lt;div class="layui-form-item"&gt; &lt;label class="layui-form-label"&gt;执行周期 ...

    JavaScript时间操作之年月日星期级联操作

    JavaScript时间操作之年月日星期级联操作是一个常见的前端交互功能,主要用于创建一个级联的日期选择器,用户可以通过选择年、月来动态更新可选的日期天数,并且在选择日期后显示相应的星期。这一功能在网页表单或者...

    js关键字总结 js关键字总结

    `JSеΪ//` 这部分描述了JavaScript中的单行注释方式。在JavaScript中,可以使用 `//` 来添加单行注释,而 `/* */` 用于多行注释。注释是代码中非常重要的一部分,它们帮助开发者理解代码的功能和逻辑,同时也是团队...

    JavaScript宝典 js开发

    ### JavaScript宝典:JS开发技巧详解 #### 一、输出语句:`document.write("")` 在JavaScript中,`document.write()`方法被用来将文本或HTML元素写入当前文档流。通常用于快速输出测试数据或者简单页面构建。需要...

    108个常用JS脚本

    根据提供的文件信息,我们可以归纳出一系列与JavaScript相关的知识点。这些知识点涵盖了从基本语法到文档对象模型(DOM)操作,以及一些常用的内置函数等各个方面。接下来,我们将对这些知识点进行详细的阐述。 ###...

    js内置对象大全

    以上内容涵盖了JavaScript中一些重要的内置对象和操作,包括DOM操作、数据类型转换、控制流、函数定义、表单操作、用户交互、URL操作、字符串处理、数学运算以及日期时间操作等方面的知识点。这些基础知识对于前端...

    JavaScript实际运用中的函数大全

    ### JavaScript 实际运用中的函数大全 #### 一、概述 JavaScript 是一种广泛应用于网页开发的脚本语言,它能够使网页具有动态交互性。本文档将详细介绍一系列实用的 JavaScript 函数,涵盖文档对象模型(DOM)操作...

    常用javascript语句大全

    ### 常用JavaScript语句详解 #### 1. `document.write("")` 输出语句 在JavaScript中,`document.write()` 方法用于将指定的内容写入正在加载的文档中。这通常用于动态创建网页内容。 #### 2. JS中的注释为`//` 在...

    js常用技巧

    根据给定文件的信息,我们可以总结出一系列JavaScript(简称JS)中的常见技巧与基本操作方法。以下将对这些知识点进行详细解析: ### 1. 输出文本到文档 ```javascript document.write(""); ``` 此方法用于向文档...

    只有年或年月的js控件

    **标签中的“日历控件”**通常是指更为全面的日期选择器,它包括年、月、日的选择,并可能带有星期和时间选择。然而,本资源提供的控件专注于年和年月,简化了日历选择的复杂性,更适合那些不需要完整日期信息的场合...

    js函数.txt

    根据给定文件的信息,我们可以提炼出一系列关于JavaScript(简称JS)的重要知识点,这些知识点涵盖了从基本语法到高级功能的应用,是理解和操作网页动态效果、处理数据、与用户交互的关键。 ### 1. JS函数基础 - *...

    JS基础知识

    - **JS注释**:通过`//`来添加单行注释,用于解释代码或暂时禁用某段代码。 #### 3. HTML元素结构 - **DOM结构**:在HTML文档中,元素之间的关系遵循着特定的层次结构,即`document-&gt;html-&gt;(head,body)`。`document...

    Javascript的常用语句

    34. **获取下拉列表的值**:使用 `.options` 和 `.selectedIndex` 来获取下拉列表的值。 ```javascript var selectedValue = document.forms[0].selectName.options[document.forms[0].selectName.selectedIndex]....

    Javascript常用函数

    ### JavaScript 常用函数与基础知识详解 #### 1. `document.write("")` - **功能**:用于在页面上输出指定的内容。 - **示例**: ```javascript document.write("Hello, World!"); ``` #### 2. JS 注释 - **...

    107条Javascript的常用语句.txt

    根据给定文件的信息,我们可以提炼出一系列关于JavaScript的重要知识点,主要涵盖了基本语法、文档对象模型(DOM)操作、数据类型转换、表单处理以及日期时间等核心领域。 ### 一、基本语法 #### 1. 输出 - `...

Global site tag (gtag.js) - Google Analytics