`
y8820960
  • 浏览: 115779 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

日历js插件,支持火狐(精确到天

 
阅读更多
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style type="text/css">
.rili { width: 196px; border:1px solid #C0D0E8; }
.rili table { 
	width: 190px;
	border: 0;
	background: #bae1f0;
}
.rili table td {  padding:2px; background: #fff; }
.time { border: 0; background: #fff; }
.time th { background: #effaff; }
.time td { text-align: center; cursor: pointer; background: #fff; }
.close { width:60px;line-height:21px;display:block;border:1px solid #bdd1ea;cursor:pointer;font-size:12px;font-weight:bold;background:#f3faff; }
span.s { width: 16px; cursor: pointer; color: #eef3f7;font-weight:bold; background:#a5b6ca; }
</style>		
		<script type="text/javascript">
			document.write("<div id=\"showDate\"  style=\"display: none;  Z-INDEX: 2; BACKGROUND: #effaff; FILTER: Alpha(opacity=85); position: absolute; WIDTH: 200px; LINE-HEIGHT: 22px; padding:6px; border: 1px solid #bae1f0; font-size:14px;\"></div>");
			
			var id;
			
			//** 此段转自于javaeye 相关链接:http://www.javaeye.com/problems/60028  **//
			//让firefox支持 event全局对象,srcElement对象   
			function __firefox(){   
			    HTMLElement.prototype.__defineGetter__("runtimeStyle", __element_style);   
			    window.constructor.prototype.__defineGetter__("event", __window_event);   
			    Event.prototype.__defineGetter__("srcElement", __event_srcElement);   
			}   
			function __element_style(){   
			    return this.style;   
			}   
			function __window_event(){   
			    return __window_event_constructor();   
			}   
			function __event_srcElement(){   
			    return this.target;   
			}   
			function __window_event_constructor(){   
			    if(document.all){   
			        return window.event;   
			    }   
			    var _caller = __window_event_constructor.caller;   
			    while(_caller!=null){   
			        var _argument = _caller.arguments[0];   
			        if(_argument){   
			            var _temp = _argument.constructor;   
			            if(_temp.toString().indexOf("Event")!=-1){   
			                return _argument;   
			            }   
			        }   
			        _caller = _caller.caller;    
			    }   
			    return null;   
			}   
			if(window.addEventListener){   
			    __firefox();   
			}
			//** 此段转自于javaeye 相关链接:http://www.javaeye.com/problems/60028  **//
			
			function showDate(ids) {
				id = ids;
				var divVal = document.getElementById("showDate");
				var clickX = event.clientX;
				var clickY = event.clientY;
				// 加px 兼容火狐
				divVal.style.left = (clickX + 1) + "px"; 
				divVal.style.top = (clickY + 1) + "px"; 
				// 得到系统日期
				var nowDate = new Date();
				selectDate(nowDate.getYear(), nowDate.getMonth());
			}
			
			// 主要函数 调用相关函数生成DIV层 显示日期
			function selectDate(nowYear, nowMonth) {
				nowYear = (nowYear < 1900 ? (1900 + nowYear) : nowYear);
				
				var showTable = "<div class=\"rili\" ><table cellpadding=0 cellspacing=0 valign=top >";
				showTable += showYear(nowYear, nowMonth);
				showTable += showWeek();
				showTable += showDates(nowYear, nowMonth);
				showTable += "<tr><td colspan=\"2\" align=\"left\"><div id=\"times\"></div></td></tr><tr><td colspan=\"2\" align=\"center\"><div  onclick=\"closeDiv()\" class=\"close\">关闭</div></td></tr></table></div></div>";
				var divVal = document.getElementById("showDate");
				divVal.innerHTML = showTable;
				divVal.style.display = "block";
			}
			
			
			function closeDiv() {
				var divVal = document.getElementById("showDate");
				divVal.style.display = "none";
			}
			
			// 输出年月
			function showYear(nowYear, nowMonth) {
				var td = "";
				td += "<tr><td><span  class=\"s\" onclick=\"preYear(" + nowYear + ", " + nowMonth + ");\">&lt;&lt;</span>";
				td += ("&nbsp;" + nowYear);
				td += "年&nbsp;";
				td += "<span class=\"s\" onclick=\"nextYear(" + nowYear + ", " + nowMonth + ");\">&gt;&gt;</span>";
				td += "</td><td><span class=\"s\" onclick=\"preMonth(" + nowYear + ", " + nowMonth + ");\">&lt;&lt;</span>&nbsp;";
				if((parseInt(nowMonth) + 1) < 10) {
					td += "0";
				}
				td += (parseInt(nowMonth) + 1);
				td += "月&nbsp;";
				td += "<span class=\"s\" onclick=\"nextMonth(" + nowYear + ", " + nowMonth + ");\">&gt;&gt;</span></td></tr>";
				return td;
			}
			
			// 输出星期
			function showWeek() {
				var week = "";
				week += "<tr><td cellpadding=\"0\" cellspacing=\"1\" colspan=\"2\"><table class=\"time\" border=\"0\"><tr >";
				week += "<th>日</th>";
				week += "<th>一</th>";
				week += "<th>二</th>";
				week += "<th>三</th>";
				week += "<th>四</th>";
				week += "<th>五</th>";
				week += "<th>六</th>";
				week += "</tr>";
				return week;
			}
			// 输出日期
			function showDates(nowYear, month) {
				var da = new Date();
				da.setYear(nowYear);
				da.setMonth(parseInt(month));
				da.setDate(1);
				var day = da.getDay();
				var dates = getDates(nowYear, month);
				var tb = "";
				var n = 0;				
				var isPrint = "";
				var k = 0;
				for(var i = 0; i < 6; i++) {
					tb += "<tr>";
					for(var j = 1; j <= 7; j++) {
						n ++;
						if(i == 0 && j <= day) {
							tb += "<td sytle=\"line-height: 16;\">&nbsp;</td>";
						} else {
							k++;
							if(k <= dates) {
								if(k == da.getDate()) {
									tb += ("<td onclick=\"getCurDate(" + nowYear + ", " + month + ", " + k + ")\"><font color=\"green\" style=\"font-weight:bold\">" + k + "</font></td>");
								} else {
									tb += ("<td onclick=\"getCurDate(" + nowYear + ", " + month + ", " + k + ")\"><font color=\"red\" style=\"font-weight:bold\">" + k + "</font></td>");
								}
							} else {
								tb += "<td sytle=\"line-height: 16;\">&nbsp;</td>";
							}
						}
					}
					tb += "</tr>";
				}
				tb += "</table></td></tr>";
				return tb;
			}
			
			// 年月操作
			function preYear(nowYearh, nowMonth) {
				selectDate(nowYearh - 1, nowMonth);
			}
			function nextYear(nowYearh, nowMonth) {
				selectDate(nowYearh + 1, nowMonth);
			}
			function preMonth(nowYearh, nowMonth) {
				if(nowMonth == 0) {
					selectDate(nowYearh - 1, 11);
				} else {
					selectDate(nowYearh, nowMonth - 1);
				}
			}
			function nextMonth(nowYearh, nowMonth) {
				if(nowMonth == 11) {
					selectDate(nowYearh + 1, 0);
				} else {
					selectDate(nowYearh, nowMonth + 1);
				}
			}
			
			// 设置
			function getCurDate(year, month, date) {
				var cMonth = "";
				var cDate = "";
				if(date < 1) {
					cDate = "1";
				} else {
					cDate = date + "";
				}
				if(date < 10) {
					cDate = "0" + date;
				}
				if(month < 10) {
					cMonth = "0" + (month + 1);
				}
				document.getElementById(id).value = year + "-" + cMonth + "-" + cDate;
				closeDiv();
			}
			// 得到日期天数
			function getDates(year, month) {
				month += 1;
				switch(month) {
				    case 2:
				          if(((year % 4) == 0 && (year % 00) != 0) ||
				          		(year % 400) == 0)
				              dates = 29; 
				          else
				              dates = 28;
				         break;
				    case 4:
				    case 6:
				    case 9:
				    case 11:
				       dates = 30;
				       break;
				   default:
				        dates = 31;
				}
				return dates;
			}
		</script>
	</head>
	<body>
	<input type="text" id="startDate" value="" onclick="showDate(this.id);" />
	</body>
</html>
分享到:
评论

相关推荐

    jquery.DataTimePicker.js 日历插件

    这个插件提供了一个功能丰富且视觉效果出色的日历组件,不仅支持年月日的选择,还包含了小时、分钟和秒的精确选择,为用户提供了方便快捷的日期和时间输入方式。 jQuery是一个轻量级、高性能的JavaScript库,它极大...

    (时间日历插件)WdatePicker

    5. **时间选择**:除了日期选择外,WdatePicker还支持时间选择,用户可以精确到分钟级别选择时间。 6. **快捷选择**:提供了今日、明日、上周、下周、本月、上月、下月等快捷选择,方便用户快速定位日期。 7. **...

    js日历控件自主选择颜色

    综上所述,这个项目使用了JavaScript、jQuery、Moment.js和Bootstrap等技术,创建了一个具有多浏览器兼容性、支持单选、多选和时间区间选择,且用户可以自由选择颜色的高级日历插件。开发者通过HTML结构定义界面,...

    兼容火狐的日历控件(显示分秒)

    在"兼容火狐的日历控件(显示分秒)"这个主题中,我们关注的是一个特别针对Firefox浏览器优化,并且能够精确到分钟和秒的日历插件或组件。以下是一些相关的知识点: 1. **跨浏览器兼容性**:在Web开发中,浏览器...

    Mobisscroll 手机网站日历选择插件(可选择年月日时分秒)

    Mobisscroll是一款专为手机网站设计的日历选择插件,它允许用户在移动设备上方便地选择日期和时间,甚至精确到小时、分钟和秒。这个插件的目的是提升用户体验,使得在小屏幕设备上进行日期和时间输入变得更加简单...

    常用日历js控件

    “常用日历js控件”指的是JavaScript编程语言中用于创建交互式日历的库或插件。JavaScript,作为一种客户端脚本语言,常被用于为网页增加动态功能,日历控件就是其中之一。这些控件通常轻量级、易于集成,并且能够...

    js时间插件WdatePicker

    JavaScript时间插件WdatePicker是前端开发中常用的一款日历选择工具,尤其在处理与日期时间相关的查询功能时,它的存在极大地提升了用户体验和开发效率。该插件以其丰富的功能、良好的兼容性和易于集成的特点,被...

    真正可用的时分秒JS插件

    JavaScript插件是一种扩展JavaScript功能的代码库,通常封装了一些特定的、复杂的功能,以便开发者在自己的项目中直接调用,降低开发难度和时间成本。 2. **时分秒JS插件的特点** - **易用性**:这个插件设计简洁...

    常用js日期插件(可选7种颜色风格)

    5. **兼容性**:考虑到不同用户的浏览器环境,此插件应该具有良好跨浏览器兼容性,包括对主流的桌面和移动浏览器的支持,如Chrome、Firefox、Safari、Edge以及旧版的IE浏览器。 6. **自定义事件和回调函数**:为了...

    多浏览器兼容的JS日历控件

    "多浏览器兼容的JS日历控件"就是这样一个解决方案,它旨在提供一致的用户体验,无论用户使用的是Firefox、Chrome、Safari、Edge还是Internet Explorer。这个日历控件在设计时特别考虑了跨浏览器的兼容性,避免了由于...

    可以精确到年月日时分秒的js日期控件

    My97 DatePicker 是由My97 Web Design开发的一款强大的日期选择插件,它支持精确到秒的日期时间选择,且具有良好的用户体验和自定义配置选项。这款控件的特点包括: 1. **高度可定制性**:My97 DatePicker 提供了...

    周日历准确到一年内的那一周

    8. **兼容性**:作为一个成熟的时间插件,WdatePicker通常会确保与主流浏览器的良好兼容性,包括Chrome、Firefox、Safari、Edge和Internet Explorer等。 通过以上特性,"周日历准确到一年内的那一周"不仅提高了用户...

    适用于web项目的时间插件

    1. **精确到分钟**:描述中提到的“支持精确到分钟”,意味着用户不仅可以选择日期,还可以选择具体的时间,精确到分钟,这对于需要精确时间信息的场景非常实用,例如会议预约、航班预订等。 2. **用户友好界面**:...

    支持跨浏览器的日历控件(包含有时分秒与无时分秒两种)

    跨浏览器的控件意味着该组件能在主流浏览器(如Chrome、Firefox、Safari、Edge和Internet Explorer)上正常运行,确保用户无论使用哪种浏览器都能得到一致的体验。开发者通常需要遵循W3C标准,并使用兼容性良好的库...

    js日期插件

    8. **兼容性**:WdatePicker兼容多种浏览器,包括IE6+、Firefox、Chrome、Safari等,确保了在主流浏览器上的稳定运行。 9. **API调用**:提供了丰富的API接口,开发者可以通过JavaScript调用这些接口动态改变日期...

    文本框时间日期插件

    4. **时间选择**:除了选择日期,laydate还支持选择时间,用户可以选择精确到小时、分钟甚至秒的时间点。 5. **多种皮肤**:laydate提供了多种皮肤供开发者选择,可以与各种网页设计风格搭配,提升界面美观度。 6....

    JS时间控件 script时间控件 漂亮的 日历

    首先,"时间控件Calendar"可能是一个基于JavaScript的日历插件,它提供了日历视图让用户直观地选择日期。这类控件通常会包含一个触发日历显示的按钮,用户点击后会出现一个包含月份和日期的弹出框。开发者可以定制...

    Jquery 1.3.2 日历时间控件 日期|时间|日期时间选择

    尽管jQuery 1.3.2相对较旧,但它的日历时间控件在当时已能良好地支持主流浏览器,如IE6+、Firefox、Chrome、Safari和Opera。然而,为了确保现代浏览器和设备的兼容性,建议升级到更现代的jQuery版本,并考虑使用响应...

    时间选择插件

    9. **兼容性**:确保插件能在主流的浏览器(如Chrome、Firefox、Safari、Edge等)中正常工作。 10. **文档和示例**:良好的插件通常会配有详细的文档和示例代码,帮助开发者快速上手。 在开发或选用此类插件时,...

Global site tag (gtag.js) - Google Analytics