分享
 
 
 

js日历控件(可精确到分钟)

王朝学院·作者佚名  2009-09-15
窄屏简体版  字體: |||超大  

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE> New Document </TITLE>

<META NAME="Generator" CONTENT="EditPlus">

<META NAME="Author" CONTENT="">

<META NAME="Keywords" CONTENT="">

<META NAME="Description" CONTENT="">

<style>

.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>

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>

点击弹出时间框:<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>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有