业务中有需要批量设置日期的需求,于是动态日历应运而生。。。。
看效果图:
看代码:
<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
分享到:
相关推荐
JavaScript 动态日历是一种网页交互元素,它允许用户在特定日期上添加、查看或管理事件。这样的功能在现代Web应用中非常常见,比如在线日程管理、会议安排或者个人计划跟踪。本项目的核心在于利用JavaScript语言的...
在本案例中,"javascript实现的动态日历"是一个利用JavaScript编写的交互式日历组件,它可以无缝集成到基于JSP(JavaServer Pages)或ASP(Active Server Pages)的网页中,为用户提供一个直观、易用的日历功能。...
此程序是javascript和php开发,提供酒店、门票订购的价格日历和点击日历订购产品功能。详细请参考驴妈妈 酒店和门票的价格日历。 index.html 入口文件 data.php 包含一个价格日历生成类和 一些实例 product.php ajax...
JavaScript日历是一个常见的网页交互元素,它为用户提供了一个方便的方式来选择日期,常见于表单填写、事件安排等场景。在Web开发中,JavaScript日历组件的实现主要依赖于JavaScript语言和CSS来完成页面布局和样式...
总结来说,这个压缩包提供了一个完整的JavaScript日历记事器,包括了前端展示所需的HTML、CSS和JS文件,以及必要的图片资源和用户指南。通过解压并运行index.htm,用户可以在本地浏览器中查看和测试这个日历组件的...
7. **兼容性**:考虑到浏览器的多样性,编写JavaScript日历控件时需要关注跨浏览器的兼容性问题,确保在不同的浏览器(如Chrome、Firefox、Safari、Edge和IE)上都能正常工作。 在提供的文件名中,"calendar.html"...
在这个主题中,我们主要关注的是“js日历 12种js日历”,这显然是一份包含了多种不同实现方式的JavaScript日历组件集合。 1. **日历组件的基本概念** 日历组件是网页中常见的交互元素,它允许用户选择日期,通常...
JavaScript万年日历JS是一种基于JavaScript、HTML和CSS技术实现的本地化日历组件,它允许用户在网页上查看和操作任何年份的日期信息,无需依赖服务器端的数据交互,完全在客户端运行,实现了真正的单机功能。...
本文将详细介绍三款JavaScript日历插件,它们各具特色,能够为你的网页增添别致的用户体验。 第一款日历插件可能是“32008731155337.rar”中的内容。虽然具体名称未知,但我们可以假设它是一款简洁且功能丰富的日历...
在本示例中,"JS.rar_javascript 日历_js_日历 java" 提供了一个关于JavaScript日历功能的实现,这通常用于网页中的日期选择器,让用户能够方便地选取日期。 日历组件是Web开发中常见的交互元素,特别是在表单中...
在IT领域,JavaScript(简称JS)是一种广泛使用的前端编程语言,尤其在网页交互和动态效果方面发挥着重要作用。本项目“纯JS日历表格”旨在提供一个完全使用JavaScript实现的日历视图,允许开发者轻松集成到自己的...
4. **JS**:JavaScript文件是日历的核心,它们实现了日历的动态功能,如日期选择、事件处理、月份切换等。可能包含一个或多个文件,分别负责不同的功能模块。例如,一个文件可能处理日历的初始化和渲染,另一个文件...
【标题】"日文版javascript日历"是一个专门针对日语环境设计的JavaScript日历控件,它提供了方便的日历显示和交互功能,尤其适用于需要日文日期展示的Web应用程序。这个控件不仅包含了完整的日历功能,还带有详细的...
以下将详细介绍JavaScript日历插件的基本原理、核心功能以及如何使用。 首先,日历插件的核心是JavaScript代码,这里是`calendar.js`文件。这个文件包含了实现日历功能的主要逻辑,包括计算日期、展示日历视图、...
创建一个完美的JavaScript日历插件涉及多个技术点: 1. **DOM操作**:首先,我们需要在HTML中创建一个容器元素来承载日历显示,然后通过JavaScript对DOM进行操作,动态生成日历的结构,包括月份、星期和日期。 2. ...
你可以使用JavaScript的Date对象来获取当前日期,并据此动态生成日历。同时,需要一个数据结构(如数组或对象)来存储用户的签到记录,确保每天只能签到一次。每次用户点击日期,检查该日期是否已被签到,如果未签到...
JavaScript日历控件是网页开发中常用的一种交互元素,它能帮助用户方便地选择日期,常见于表单输入、事件安排或时间相关的功能。在给定的资源中,包含了六种不同样式的JavaScript日历,这些日历可能具有不同的设计...
3. **动态生成日历**:根据所选年份,利用JavaScript遍历12个月,填充HTML表格。可以使用DOM操作(如`document.createElement()`,`appendChild()`)或者模板字符串来动态创建和插入HTML元素。 4. **事件处理**:...
使用js + html 实现的简单的网页版日历,顶部默认会显示当前日期和时间,时间会精确到秒,并且时间会实时刷新,日历UI符合主流日历的样式,可以选择年,月,日查看每个月份的每一天对应星期几,默认显示当前日期所在...
JavaScript(简称JS)是一种轻量级的解释型编程语言,广泛用于网页和网络应用开发,尤其是在客户端脚本处理上。JS日历控件是前端开发中常见的一种组件,主要用于显示日期选择器,用户可以通过它方便地选取日期。本文...