当前位置: 代码迷 >> Web前端 >> 精确届时分的日期、时间选择控件-
  详细解决方案

精确届时分的日期、时间选择控件-

热度:117   发布时间:2012-10-18 13:46:55.0
精确到时分的日期、时间选择控件----------!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>网页特效-时间特效-精确到分钟的时间控件</title>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<!--把下面代码加到<head>与</head>之间-->
<style type="text/css">
.menu_iframe{
??? position:absolute;
??? visibility:inherit;
??? top:0px;
??? left:0px;
??? width:170px;
??? z-index:-1;
??? filter:Alpha(Opacity=0);
}
.cal_table{
??? border:#333333 solid 1px;
??? border-collapse:collapse;
??? background:#ffffff;
??? font-size:12px;
}
.cal_table td{
??? border:1px #ffffff solid;
}
.cal_drawdate{
??? background:#E3EBF6;
??? border-collapse:collapse;
??? width:100%;
}
.cal_drawdate td{
??? border:1px #ffffff solid;
}
.cal_drawtime{
??? border:0px #ffffff solid;
??? font-size:12px;
}
.cal_drawdate td{
??? border:0px #ffffff solid;
}
.m_fieldset{
??? padding:0,10,5,10;
??? text-align:center;
??? width:150px;
}
.m_legend{
??? font-family:Tahoma;
??? font-size:11px;
??? padding-bottom:5px;
}
.m_frameborder{
??? border-left:1px inset #D4D0C8;
??? border-top:1px inset #D4D0C8;
??? border-right:1px inset #D4D0C8;
??? border-bottom:1px inset #D4D0C8;
??? width:35px;
??? height:19px;
??? background-color:#FFFFFF;
??? overflow:hidden;
??? text-align:right;
??? font-family:"Tahoma";
??? font-size:10px;
}
.m_arrow{
??? width:16px;
??? height:8px;
??? background:#CCCCCC;
??? font-family:"Webdings";
??? font-size:7px;
??? line-height:2px;
??? padding-left:2px;
??? cursor:default;
}
.m_input{
??? width:12px;
??? height:14px;
??? border:0px solid black;
??? font-family:"Tahoma";
??? font-size:9px;
??? text-align:right;
}
.c_fieldset{
??? padding:0,10,5,10;
??? text-align:center;
??? width:180px;
}
.c_legend{
??? font-family:Tahoma;
??? font-size:11px;
??? padding-bottom:5px;
}
.c_frameborder{
??? border-left:1px #D4D0C8;
??? border-top:1px #D4D0C8;
??? border-right:1px #FFFFFF;
??? border-bottom:1px #FFFFFF;
??? background-color:#FFFFFF;
??? overflow:hidden;
??? font-family:"Tahoma";
??? font-size:10px;
??? width:100%;
??? height:120px;
}
.c_frameborder td{
??? width:23px;
??? height:16px;
??? font-family:"Tahoma";
??? font-size:11px;
??? text-align:center;
??? cursor:default;
}
.c_frameborder .selected{
??? background-color:#0A246A;
??? width:12px;
??? height:12px;
??? color:white;
??? display:block;
}
.c_frameborder span{
??? width:12px;
??? height:12px;
}
.c_arrow{
??? width:16px;
??? height:8px;
??? background:#CCCCCC;
??? font-family:"Webdings";
??? font-size:7px;
??? line-height:2px;
??? padding-left:2px;
??? cursor:default;
}
.c_year{
??? font-family:"Tahoma";
??? font-size:11px;
??? cursor:default;
??? width:55px;
??? height:20px;
??? border:#99B2D3 solid 1px;
}
.c_month{
??? width:75px;
??? height:20px;
??? font:11px "Tahoma";
??? border:#99B2D3 solid 1px;
}
.c_dateHead{
??? background-color:#99B2D3;
??? color:#ffffff;
??? border-collapse:collapse;
}
.c_dateHead td{
??? border:0px #ffffff solid;
}
.rightmenu{
??? float:left; /* 菜单总体水平位置 */
??? list-style:none;
??? line-height:19px; /* 一级菜单高 */
??? background:#1371A0; /* 所有菜单移出色 */
??? font-weight:bold;
??? padding:0px;
??? margin:0px;
??? border:1px #000000 solid;
}
.rightmenu li{
??? float:left; /* 菜单总体水平位置 */
??? list-style:none;
??? line-height:19px; /* 一级菜单高 */
??? background:#1371A0; /* 所有菜单移出色 */
??? font-weight:bold;
??? color:#FFFFFF;
??? padding:0px;
??? margin:0px;
??? border:1px #FFFFFF solid;
}
.rightmenu li a{
??? float:left; /* 菜单总体水平位置 */
??? list-style:none;
??? line-height:19px; /* 一级菜单高 */
??? background:#1371A0; /* 所有菜单移出色 */
??? font-weight:bold;
??? color:#FFFFFF !important;
??? padding:0px;
??? margin:0px;
??? border-right:0px;
??? display:block;
??? width:80px;
}
.rightmenu li a:hover{
??? float:left; /* 菜单总体水平位置 */
??? list-style:none;
??? line-height:19px; /* 一级菜单高 */
??? background:#B2CFDF; /* 所有菜单移出色 */
??? font-weight:bold;
??? color:#000000 !important;
??? padding:0px;
??? margin:0px;
??? border-right:0px;
??? width:80px;
??? text-decoration:none;
}
</style>
<script language="javascript">
function CalendarMinute(name,fName)
{
??? this.name = name;
??? this.fName = fName || "m_input";
??? this.timer = null;
??? this.fObj = null;
??? this.toString = function()
??? {
??????? var objDate = new Date();????????
??????? var sMinute_Common = "class=\"m_input\" maxlength=\"2\" name=\""+this.fName+"\" onfocus=\""+this.name+".setFocusObj(this)\" onblur=\""+this.name+".setTime(this)\" onkeyup=\""+this.name+".prevent(this)\" onkeypress=\"if (!/[0-9]/.test(String.fromCharCode(event.keyCode)))event.keyCode=0\" onpaste=\"return false\" ondragenter=\"return false\"";
??????? var sButton_Common = "class=\"m_arrow\" onfocus=\"this.blur()\" onmouseup=\""+this.name+".controlTime()\" disabled"
??????? var str = "";
??????? str += "<table class=\"cal_drawtime\" cellspacing=\"0\" cellpadding=\"0\">"
??????? str += "<tr>"
??????? str += "<td>"
??????? str += "请选择时间:"
??????? str += "</td>"
??????? str += "<td>"
??????? str += "<div class=\"m_frameborder\">"
??????? str += "<input radix=\"24\" value=\""+this.formatTime(objDate.getHours())+"\" "+sMinute_Common+">:"
??????? str += "<input radix=\"60\" value=\""+this.formatTime(objDate.getMinutes())+"\" "+sMinute_Common+">"
??????? //str += "<input radix=\"60\" value=\""+this.formatTime(objDate.getSeconds())+"\" "+sMinute_Common+">"
??????? str += "</div>"
??????? str += "</td>"
??????? str += "<td>"
??????? str += "<table class=\"cal_drawtime\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"
??????? str += "<tr><td><button id=\""+this.fName+"_up\" "+sButton_Common+">5</button></td></tr>"
??????? str += "<tr><td><button id=\""+this.fName+"_down\" "+sButton_Common+">6</button></td></tr>"
??????? str += "</table>"
??????? str += "</td>"
??????? str += "</tr>"
??????? str += "</table>"
??????? return str;
??? }
??? this.play = function()
??? {
??????? this.timer = setInterval(this.name+".playback()",1000);
??? }
??? this.formatTime = function(sTime)
??? {
??????? sTime = ("0"+sTime);
??????? return sTime.substr(sTime.length-2);
??? }
??? this.playback = function()
??? {
??????? var objDate = new Date();
??????? var arrDate = [objDate.getHours(),objDate.getMinutes(),objDate.getSeconds()];
??????? var objMinute = document.getElementsByName(this.fName);
??????? for (var i=0;i<objMinute.length;i++)
??????? {
??????????? objMinute[i].value = this.formatTime(arrDate[i])
??????? }
??? }
??? this.prevent = function(obj)
??? {
??????? clearInterval(this.timer);
??????? this.setFocusObj(obj);
??????? var value = parseInt(obj.value,10);
??????? var radix = parseInt(obj.radix,10)-1;
??????? if (obj.value>radix||obj.value<0)
??????? {
??????????? obj.value = obj.value.substr(0,1);
??????? }
??? }
??? this.controlTime = function(cmd)
??? {
??????? event.cancelBubble = true;
??????? if (!this.fObj) return;
??????? clearInterval(this.timer);
??????? var cmd = event.srcElement.innerText=="5"?true:false;
??????? var i = parseInt(this.fObj.value,10);
??????? var radix = parseInt(this.fObj.radix,10)-1;
??????? if (i==radix&&cmd)
??????? {
??????????? i = 0;
??????? }
??????? else if (i==0&&!cmd)
??????? {
??????????? i = radix;
??????? }
??????? else
??????? {
??????????? cmd?i++:i--;
??????? }
??????? this.fObj.value = this.formatTime(i);
??????? this.fObj.select();
??????? getDateTime();
??? }
??? this.setTime = function(obj)
??? {
??????? obj.value = this.formatTime(obj.value);
??? }
??? this.setFocusObj = function(obj)
??? {????????
??????? eval(this.fName+"_up").disabled = eval(this.fName+"_down").disabled = false;
??????? this.fObj = obj;
??? }
??? this.getTime = function()
??? {
??????? var arrTime = new Array(2);
??????? for (var i=0;i<document.getElementsByName(this.fName).length;i++)
??????? {
??????????? arrTime[i] = document.getElementsByName(this.fName)[i].value;
//alert(arrTime[i]);
}
??????? return arrTime.join(":");
??? }
}
//Written by cloudchen, 2004/03/16
function CalendarCalendar(name,fName)
{
??? this.name = name;
??? this.fName = fName || "calendar";
??? this.year = new Date().getFullYear();
??? this.month = new Date().getMonth();
??? this.date = new Date().getDate();
//alert(this.month);
//private
??? this.toString = function()
??? {
??????? var str = "";
??????? str += "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" onselectstart=\"return false\">";
??????? str += "<tr>";
??????? str += "<td>";
??????? str += this.drawMonth();
??????? str += "</td>";
??????? str += "<td align=\"right\">";
??????? str += this.drawYear();
??????? str += "</td>";
??????? str += "</tr>";
??????? str += "<tr>";
??????? str += "<td colspan=\"2\">";
??????? str += "<div class=\"c_frameborder\">";
??????? str += "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"c_dateHead\">";
??????? str += "<tr>";
??????? str += "<td>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td>";
??????? str += "</tr>";
??????? str += "</table>";
??????? str += this.drawDate();
??????? str += "</div>";
??????? str += "</td>";
??????? str += "</tr>";
??????? str += "</table>";
??????? return str;
??? }
??? //private
??? this.drawYear = function()
??? {
??????? var str = "";
??????? str += "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
??????? str += "<tr>";
??????? str += "<td>";
??????? str += "<input class=\"c_year\" maxlength=\"4\" value=\""+this.year+"\" name=\""+this.fName+"\" id=\""+this.fName+"_year\" readonly>";
??????? //DateField
??????? str += "<input type=\"hidden\" name=\""+this.fName+"\" value=\""+this.date+"\" id=\""+this.fName+"_date\">";
??????? str += "</td>";
??????? str += "<td>";
??????? str += "<table cellspacing=\"2\" cellpadding=\"0\" border=\"0\">";
??????? str += "<tr>";
??????? str += "<td><button class=\"c_arrow\" onfocus=\"this.blur()\" onclick=\"event.cancelBubble=true;document.getElementById('"+this.fName+"_year').value++;"+this.name+".redrawDate()\">5</button></td>";
??????? str += "</tr>";
??????? str += "<tr>";
??????? str += "<td><button class=\"c_arrow\" onfocus=\"this.blur()\" onclick=\"event.cancelBubble=true;document.getElementById('"+this.fName+"_year').value--;"+this.name+".redrawDate()\">6</button></td>";
??????? str += "</tr>";
??????? str += "</table>";
??????? str += "</td>";
??????? str += "</tr>";
??????? str += "</table>";
??????? return str;
??? }
??? //priavate
??? this.drawMonth = function()
??? {//alert(this.fName);
??????? var aMonthName = ["一","二","三","四","五","六","七","八","九","十","十一","十二"];
??????? var str = "";
??????? str += "<select class=\"c_month\" name=\""+this.fName+"\" id=\""+this.fName+"_month\" onchange=\""+this.name+".redrawDate()\">";
??????? for (var i=0;i<aMonthName.length;i++) {
??????????? str += "<option value=\""+(i+1)+"\" "+(i==this.month?"selected":"")+">"+aMonthName[i]+"月</option>";
??????? }
??????? str += "</select>";
??????? return str;
??? }
??? //private
??? this.drawDate = function()
??? {
??????? var str = "";
??????? var fDay = new Date(this.year,this.month,1).getDay();
??????? var fDate = 1-fDay;
??????? var lDay = new Date(this.year,this.month+1,0).getDay();
??????? var lDate = new Date(this.year,this.month+1,0).getDate();
??????? str += "<table class=\"cal_drawdate\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" id=\""+this.fName+"_dateTable"+"\">";
??????? for (var i=1,j=fDate;i<7;i++)
??????? {
??????????? str += "<tr>";
??????????? for (var k=0;k<7;k++)
??????????? {
??????????????? str += "<td><span"+(j==this.date?" class=\"selected\"":"")+" onclick=\""+this.name+".redrawDate(this.innerText)\">"+(isDate(j++))+"</span></td>";
??????????? }
??????????? str += "</tr>";
??????? }
??????? str += "</table>";
??????? return str;
??????? function isDate(n)
??????? {
??????????? return (n>=1&&n<=lDate)?n:"";
??????? }
??? }
??? //public
??? this.redrawDate = function(d)
??? {
??????? this.year = document.getElementById(this.fName+"_year").value;
??????? this.month = document.getElementById(this.fName+"_month").value-1;
//alert(this.date)
this.date = d || this.date;
//alert(this.date)
document.getElementById(this.fName+"_year").value = this.year;
??????? document.getElementById(this.fName+"_month").selectedIndex = this.month;
??????? document.getElementById(this.fName+"_date").value = this.date;
??????? if (this.date>new Date(this.year,this.month+1,0).getDate()) this.date = new Date(this.year,this.month+1,0).getDate();
??????? document.getElementById(this.fName+"_dateTable").outerHTML = this.drawDate();
??????? //alert(this.year);
??????? //alert(this.month);
??????? //alert(this.date);
??????? getDateTime();
??? }
??? //public
??? this.getDate = function(delimiter)
??? {
var s_month,s_date;
s_month=this.month+1;
s_date=this.date;
s_month = ("0"+s_month);
s_month=s_month.substr(s_month.length-2);
s_date = ("0"+s_date);
s_date=s_date.substr(s_date.length-2);
if (!delimiter) delimiter = "-";
??????? var aValue = [this.year,s_month,s_date];
??????? return aValue.join(delimiter);
??? }
}
function getDateTime(){
??? //alert(c.getDate()+' '+m.getTime());????
??? gdCtrl.value = c.getDate()+' '+m.getTime();
}
var gdCtrl = new Object();
function showCal(popCtrl){????
??? gdCtrl = popCtrl;
??? event.cancelBubble=true;
??? //alert(popCtrl);
??? var point = fGetXY(popCtrl);
??? //alert(point.x);
??? //var point = new Point(100,100);
//alert(gdCtrl.value);
var gdValue=gdCtrl.value;
var i_year,i_month,i_day,i_hour,i_minute;
if(gdCtrl.value!="" && validateDate1(gdCtrl.value,'yyyy-MM-dd HH:mm')){
i_year=gdValue.substr(0,4);
if(gdValue.substr(5,1)=="0"){
i_month=parseInt(gdValue.substr(6,1));
}else{
i_month=parseInt(gdValue.substr(5,2));
}
if(gdValue.substr(8,1)=="0"){
i_day=parseInt(gdValue.substr(9,1));
}else{
i_day=parseInt(gdValue.substr(8,2));
}
i_hour1=gdValue.substr(11,2);
i_minute=gdValue.substr(14,2);
//alert(i_hour1+"aaa");
//alert(i_minute);
document.getElementById(c.fName+"_year").value = i_year;
document.getElementById(c.fName+"_month").value= i_month;
//document.getElementById(c.fName+"_date").value = i_day;
c.date=i_day;
document.getElementsByName(m.fName)[0].value=i_hour1;
document.getElementsByName(m.fName)[1].value=i_minute;
c.redrawDate();
}
//c.month=
with (dateTime.style) {
??????? left = point.x;
??????? top = point.y+popCtrl.offsetHeight+1;
??????? width = dateTime.offsetWidth;
??????? height = dateTime.offsetHeight;
??????? //fToggleTags(point);
??????? visibility = 'visible';
??? }
????
??? dateTime.focus();
}
function Point(iX, iY){
??? this.x = iX;
??? this.y = iY;
}
function validateDate1(date,format){
var time=date;
if(time=="") return;
var reg=format;
var reg=reg.replace(/yyyy/,"[0-9]{4}");
var reg=reg.replace(/yy/,"[0-9]{2}");
var reg=reg.replace(/MM/,"((0[1-9])|1[0-2])");
var reg=reg.replace(/M/,"(([1-9])|1[0-2])");
var reg=reg.replace(/dd/,"((0[1-9])|([1-2][0-9])|30|31)");
var reg=reg.replace(/d/,"([1-9]|[1-2][0-9]|30|31))");
var reg=reg.replace(/HH/,"(([0-1][0-9])|20|21|22|23)");
var reg=reg.replace(/H/,"([0-9]|1[0-9]|20|21|22|23)");
var reg=reg.replace(/mm/,"([0-5][0-9])");
var reg=reg.replace(/m/,"([0-9]|([1-5][0-9]))");
var reg=reg.replace(/ss/,"([0-5][0-9])");
var reg=reg.replace(/s/,"([0-9]|([1-5][0-9]))");
reg=new RegExp("^"+reg+"$");
if(reg.test(time)==false){//验证格式是否合法
//alert(alt);
//date.focus();
return false;
}
return true;
}
function fGetXY(aTag){????
??? var oTmp=aTag;
??? var pt = new Point(0,0);
??? do {????????
??????? pt.x += oTmp.offsetLeft;
??????? pt.y += oTmp.offsetTop;
??????? oTmp = oTmp.offsetParent;
??? } while(oTmp.tagName!="BODY");
????
??? return pt;
}
function hideCalendar(){
dateTime.style.visibility = "hidden";
/*for (i in goSelectTag) //????????,goSelectTag????
??? goSelectTag[i].style.visibility = "visible";
goSelectTag.length = 0;*/
}
</script>
</head>
<body>
<!--把下面代码加到<body>与</body>之间-->
点击弹出时间框:<input class="input" type="text" name="bgntime" style="width:120" value="" id="bgntime" onClick="showCal(bgntime)">
<div id="dateTime" onclick="event.cancelBubble=true" style="position:absolute;visibility:hidden;width:100px;height:100px;left=0px;top=0px;z-index:100;">
? <table class="cal_table" border="0">
??? <tr>
????? <td><script>var c=new CalendarCalendar('c');document.write(c);</script></td>
??? </tr>
??? <tr>
????? <td valign="top" align="center"><script>var m=new CalendarMinute('m');document.write(m);</script></td>
??? </tr>
? </table>
? <iframe src="javascript:false" style="height:200px" class="menu_iframe"></iframe>
</div>
<script event="onclick()" for="document">hideCalendar()</script>
</body>
</html>

?

?

不错

?

做前台的带走吧

  相关解决方案