<!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 + ");\"><<</span>";
td += (" " + nowYear);
td += "年 ";
td += "<span class=\"s\" onclick=\"nextYear(" + nowYear + ", " + nowMonth + ");\">>></span>";
td += "</td><td><span class=\"s\" onclick=\"preMonth(" + nowYear + ", " + nowMonth + ");\"><<</span> ";
if((parseInt(nowMonth) + 1) < 10) {
td += "0";
}
td += (parseInt(nowMonth) + 1);
td += "月 ";
td += "<span class=\"s\" onclick=\"nextMonth(" + nowYear + ", " + nowMonth + ");\">>></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;\"> </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;\"> </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是一个轻量级、高性能的JavaScript库,它极大...
5. **时间选择**:除了日期选择外,WdatePicker还支持时间选择,用户可以精确到分钟级别选择时间。 6. **快捷选择**:提供了今日、明日、上周、下周、本月、上月、下月等快捷选择,方便用户快速定位日期。 7. **...
综上所述,这个项目使用了JavaScript、jQuery、Moment.js和Bootstrap等技术,创建了一个具有多浏览器兼容性、支持单选、多选和时间区间选择,且用户可以自由选择颜色的高级日历插件。开发者通过HTML结构定义界面,...
在"兼容火狐的日历控件(显示分秒)"这个主题中,我们关注的是一个特别针对Firefox浏览器优化,并且能够精确到分钟和秒的日历插件或组件。以下是一些相关的知识点: 1. **跨浏览器兼容性**:在Web开发中,浏览器...
Mobisscroll是一款专为手机网站设计的日历选择插件,它允许用户在移动设备上方便地选择日期和时间,甚至精确到小时、分钟和秒。这个插件的目的是提升用户体验,使得在小屏幕设备上进行日期和时间输入变得更加简单...
“常用日历js控件”指的是JavaScript编程语言中用于创建交互式日历的库或插件。JavaScript,作为一种客户端脚本语言,常被用于为网页增加动态功能,日历控件就是其中之一。这些控件通常轻量级、易于集成,并且能够...
JavaScript时间插件WdatePicker是前端开发中常用的一款日历选择工具,尤其在处理与日期时间相关的查询功能时,它的存在极大地提升了用户体验和开发效率。该插件以其丰富的功能、良好的兼容性和易于集成的特点,被...
JavaScript插件是一种扩展JavaScript功能的代码库,通常封装了一些特定的、复杂的功能,以便开发者在自己的项目中直接调用,降低开发难度和时间成本。 2. **时分秒JS插件的特点** - **易用性**:这个插件设计简洁...
5. **兼容性**:考虑到不同用户的浏览器环境,此插件应该具有良好跨浏览器兼容性,包括对主流的桌面和移动浏览器的支持,如Chrome、Firefox、Safari、Edge以及旧版的IE浏览器。 6. **自定义事件和回调函数**:为了...
"多浏览器兼容的JS日历控件"就是这样一个解决方案,它旨在提供一致的用户体验,无论用户使用的是Firefox、Chrome、Safari、Edge还是Internet Explorer。这个日历控件在设计时特别考虑了跨浏览器的兼容性,避免了由于...
My97 DatePicker 是由My97 Web Design开发的一款强大的日期选择插件,它支持精确到秒的日期时间选择,且具有良好的用户体验和自定义配置选项。这款控件的特点包括: 1. **高度可定制性**:My97 DatePicker 提供了...
8. **兼容性**:作为一个成熟的时间插件,WdatePicker通常会确保与主流浏览器的良好兼容性,包括Chrome、Firefox、Safari、Edge和Internet Explorer等。 通过以上特性,"周日历准确到一年内的那一周"不仅提高了用户...
1. **精确到分钟**:描述中提到的“支持精确到分钟”,意味着用户不仅可以选择日期,还可以选择具体的时间,精确到分钟,这对于需要精确时间信息的场景非常实用,例如会议预约、航班预订等。 2. **用户友好界面**:...
跨浏览器的控件意味着该组件能在主流浏览器(如Chrome、Firefox、Safari、Edge和Internet Explorer)上正常运行,确保用户无论使用哪种浏览器都能得到一致的体验。开发者通常需要遵循W3C标准,并使用兼容性良好的库...
8. **兼容性**:WdatePicker兼容多种浏览器,包括IE6+、Firefox、Chrome、Safari等,确保了在主流浏览器上的稳定运行。 9. **API调用**:提供了丰富的API接口,开发者可以通过JavaScript调用这些接口动态改变日期...
4. **时间选择**:除了选择日期,laydate还支持选择时间,用户可以选择精确到小时、分钟甚至秒的时间点。 5. **多种皮肤**:laydate提供了多种皮肤供开发者选择,可以与各种网页设计风格搭配,提升界面美观度。 6....
首先,"时间控件Calendar"可能是一个基于JavaScript的日历插件,它提供了日历视图让用户直观地选择日期。这类控件通常会包含一个触发日历显示的按钮,用户点击后会出现一个包含月份和日期的弹出框。开发者可以定制...
尽管jQuery 1.3.2相对较旧,但它的日历时间控件在当时已能良好地支持主流浏览器,如IE6+、Firefox、Chrome、Safari和Opera。然而,为了确保现代浏览器和设备的兼容性,建议升级到更现代的jQuery版本,并考虑使用响应...
9. **兼容性**:确保插件能在主流的浏览器(如Chrome、Firefox、Safari、Edge等)中正常工作。 10. **文档和示例**:良好的插件通常会配有详细的文档和示例代码,帮助开发者快速上手。 在开发或选用此类插件时,...