`
iswift
  • 浏览: 189996 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

业务中有需要批量设置日期的需求,于是动态日历应运而生。。。。

 

看效果图:

 




 

 看代码:

 

<html>
    <head>
    <title>动态日历</title>
	<style type="text/css">
		table{border:1px solid white;}
		thead tr{background-color:#dfe0e4;}
		thead tr td{text-align:center;}
		#calendar tr td{color: #000000;text-decoration: none;background-color:#EFEFEF;text-align:center;}
	</style>
	
    </head> 
    <body>
		年份:<select id="selYear" name="year" onchange="changeCalendar()"></select>
		月份:<select id="selMonth" name="month" onchange="changeCalendar()"></select>
		<table width="100%" border="1" cellspacing="0" cellpadding="1">
			<thead>
			<tr>
				<td>Sunday</td>                  
				<td>Monday</td>
				<td>Tuesday</td>
				<td>Wednesday</td>                  
				<td>Thursday</td>
				<td>Friday</td>
				<td>Saturday</td>
			</tr>
			</thead>
			<tbody id="calendar"></tbody>
		</table>
    </body>
	<script type="text/javascript">
		(function(){
			var selYear = document.getElementById("selYear");
			var selMonth = document.getElementById("selMonth");
		
			var date = new Date();
			var year = date.getFullYear();
			var month = date.getMonth() + 1;
			var day = date.getDate();
			//生成当前年往前推10往后推5的数据
			for(var i = year - 10,len = year + 5; i < len; i++){
				var opt = new Option(i + "年", i);
				if(i == year) opt.selected = true;
				selYear.options.add(opt);
			}
			//生成月份数据
			for(var j = 1; j <= 12; j++){
				var m = j < 10 ? "0" + j : j;
				var opt = new Option(m + "月", m);
				if(j == month) opt.selected = true;
				selMonth.options.add(opt);
			}
			//显示当前月日历
			showCalendar(year, month);
		})();
		
		//得到每月的天数
		function getDaysOfMonth(year, month){
			if(year && month){
				if(month == 2){
					//2月闰年判断
					if((year % 4 == 0 && year % 100 !=0) || year % 400 == 0){
						return 29;
					}
					return 28;
				}
				var bigMonth = [1,3,5,7,8,10,12];
				var littleMonth = [4,6,9,11];
				for(var m in bigMonth){
					if(bigMonth[m] == month)
						return 31;
				}
				for(var m in littleMonth) {
					if(littleMonth[m] == month)
						return 30;
				}
			}
		}
		
		//根据年月生成日历
		function showCalendar(year, month){
			if(year && month){
				var tbody = document.getElementById("calendar");
				//生成前删除之前的行
				for(var i = 0,len =tbody.rows.length;i< len;i++){
					tbody.deleteRow();
				}
				var date = new Date(year, month - 1, 1);//month月的第一天
				var day = date.getDay();//星期
				var days = getDaysOfMonth(year, month);//month月的总天数
				var temp = Math.floor((days + day) / 7);
				var rows = (days + day) % 7 == 0 ? temp : (temp + 1);//要循环的行数
				var d = 1;
				for(var i = 1; i <= rows; i++){//循环行
					var tr = document.createElement("tr");
					for(var j = 1; j <= 7; j++){//循环列
						var td = document.createElement("td");
						//超过最大天数赋空
						if(d > days){
							td.innerHTML = "";
							tr.appendChild(td);
							continue;
						}
						if(i == 1){
							//第一行判断month月第一天是星期几,例如星期二前面空两个周日、周一
							if(j >= day + 1){
								var html = "<input type='checkbox' name='chkDay'>";
								td.innerHTML = html + (d < 10 ? "0" + d : d);
								d++;
							}else{
								td.innerHTML = "";
							}
						} else {
							var html = "<input type='checkbox' name='chkDay'>";
							td.innerHTML = html + (d < 10 ? "0" + d : d);
							d++;
						}
						tr.appendChild(td);
					}
					tbody.appendChild(tr);
				}
			}
		}
		
		function changeCalendar(){
			var y = document.getElementById("selYear").value;
			var m = document.getElementById("selMonth").value;
			showCalendar(y, m);
		}
	</script>
</html>
 
  • 大小: 6.5 KB
  • 大小: 6.4 KB
  • 大小: 6.3 KB
分享到:
评论

相关推荐

    js动态日历~可在相应日期添加对应的事项

    JavaScript 动态日历是一种网页交互元素,它允许用户在特定日期上添加、查看或管理事件。这样的功能在现代Web应用中非常常见,比如在线日程管理、会议安排或者个人计划跟踪。本项目的核心在于利用JavaScript语言的...

    javascript实现的动态日历

    在本案例中,"javascript实现的动态日历"是一个利用JavaScript编写的交互式日历组件,它可以无缝集成到基于JSP(JavaServer Pages)或ASP(Active Server Pages)的网页中,为用户提供一个直观、易用的日历功能。...

    js酒店价格日历_js门票价格日历_javascript价格日历

    此程序是javascript和php开发,提供酒店、门票订购的价格日历和点击日历订购产品功能。详细请参考驴妈妈 酒店和门票的价格日历。 index.html 入口文件 data.php 包含一个价格日历生成类和 一些实例 product.php ajax...

    js 日历 js日历 例子 javascript日历

    JavaScript日历是一个常见的网页交互元素,它为用户提供了一个方便的方式来选择日期,常见于表单填写、事件安排等场景。在Web开发中,JavaScript日历组件的实现主要依赖于JavaScript语言和CSS来完成页面布局和样式...

    js日历记事器js动态记事日历漂亮

    总结来说,这个压缩包提供了一个完整的JavaScript日历记事器,包括了前端展示所需的HTML、CSS和JS文件,以及必要的图片资源和用户指南。通过解压并运行index.htm,用户可以在本地浏览器中查看和测试这个日历组件的...

    html js脚本日历控件

    7. **兼容性**:考虑到浏览器的多样性,编写JavaScript日历控件时需要关注跨浏览器的兼容性问题,确保在不同的浏览器(如Chrome、Firefox、Safari、Edge和IE)上都能正常工作。 在提供的文件名中,"calendar.html"...

    js日历 12种js日历

    在这个主题中,我们主要关注的是“js日历 12种js日历”,这显然是一份包含了多种不同实现方式的JavaScript日历组件集合。 1. **日历组件的基本概念** 日历组件是网页中常见的交互元素,它允许用户选择日期,通常...

    javascript万年日历js

    JavaScript万年日历JS是一种基于JavaScript、HTML和CSS技术实现的本地化日历组件,它允许用户在网页上查看和操作任何年份的日期信息,无需依赖服务器端的数据交互,完全在客户端运行,实现了真正的单机功能。...

    三款js日历(javascript 日历)

    本文将详细介绍三款JavaScript日历插件,它们各具特色,能够为你的网页增添别致的用户体验。 第一款日历插件可能是“32008731155337.rar”中的内容。虽然具体名称未知,但我们可以假设它是一款简洁且功能丰富的日历...

    JS.rar_javascript 日历_js_日历 java

    在本示例中,"JS.rar_javascript 日历_js_日历 java" 提供了一个关于JavaScript日历功能的实现,这通常用于网页中的日期选择器,让用户能够方便地选取日期。 日历组件是Web开发中常见的交互元素,特别是在表单中...

    纯JS日历表格

    在IT领域,JavaScript(简称JS)是一种广泛使用的前端编程语言,尤其在网页交互和动态效果方面发挥着重要作用。本项目“纯JS日历表格”旨在提供一个完全使用JavaScript实现的日历视图,允许开发者轻松集成到自己的...

    百度日历JS版本,样式完全一致

    4. **JS**:JavaScript文件是日历的核心,它们实现了日历的动态功能,如日期选择、事件处理、月份切换等。可能包含一个或多个文件,分别负责不同的功能模块。例如,一个文件可能处理日历的初始化和渲染,另一个文件...

    日文版javascript日历

    【标题】"日文版javascript日历"是一个专门针对日语环境设计的JavaScript日历控件,它提供了方便的日历显示和交互功能,尤其适用于需要日文日期展示的Web应用程序。这个控件不仅包含了完整的日历功能,还带有详细的...

    javascript小巧日历插件

    以下将详细介绍JavaScript日历插件的基本原理、核心功能以及如何使用。 首先,日历插件的核心是JavaScript代码,这里是`calendar.js`文件。这个文件包含了实现日历功能的主要逻辑,包括计算日期、展示日历视图、...

    js完美日历插件

    创建一个完美的JavaScript日历插件涉及多个技术点: 1. **DOM操作**:首先,我们需要在HTML中创建一个容器元素来承载日历显示,然后通过JavaScript对DOM进行操作,动态生成日历的结构,包括月份、星期和日期。 2. ...

    js移动端日历签到页面代码.rar

    你可以使用JavaScript的Date对象来获取当前日期,并据此动态生成日历。同时,需要一个数据结构(如数组或对象)来存储用户的签到记录,确保每天只能签到一次。每次用户点击日期,检查该日期是否已被签到,如果未签到...

    JavaScript日历控件 六种日历

    JavaScript日历控件是网页开发中常用的一种交互元素,它能帮助用户方便地选择日期,常见于表单输入、事件安排或时间相关的功能。在给定的资源中,包含了六种不同样式的JavaScript日历,这些日历可能具有不同的设计...

    js创建年日历

    3. **动态生成日历**:根据所选年份,利用JavaScript遍历12个月,填充HTML表格。可以使用DOM操作(如`document.createElement()`,`appendChild()`)或者模板字符串来动态创建和插入HTML元素。 4. **事件处理**:...

    用 js + html 实现一个网页版日历

    使用js + html 实现的简单的网页版日历,顶部默认会显示当前日期和时间,时间会精确到秒,并且时间会实时刷新,日历UI符合主流日历的样式,可以选择年,月,日查看每个月份的每一天对应星期几,默认显示当前日期所在...

    js日历大全(收积几种JS日历)

    JavaScript(简称JS)是一种轻量级的解释型编程语言,广泛用于网页和网络应用开发,尤其是在客户端脚本处理上。JS日历控件是前端开发中常见的一种组件,主要用于显示日期选择器,用户可以通过它方便地选取日期。本文...

Global site tag (gtag.js) - Google Analytics