Javascript日期控件例子.docx
《Javascript日期控件例子.docx》由会员分享,可在线阅读,更多相关《Javascript日期控件例子.docx(20页珍藏版)》请在冰豆网上搜索。
Javascript日期控件例子
示例1.
效果图如下
代码
String.prototype.Format=function(){
vartmpStr=this;
variLen=arguments.length;
for(vari=0;itmpStr=tmpStr.replace(newRegExp("\\{"+i+"\\}","g"),arguments[i]);
}
returntmpStr;
}
Calendar={
//regionProperty
today:
newDate(),
year:
2005,
month:
8,
date:
21,
curPosX:
0,
curPosY:
0,
curCapture:
null,
curDay:
null,
//endregion
//regionMethod
display:
function(o,e,d){
with(Calendar){
o=typeof(o)=="object"?
o:
document.getElementById(o);
if(window.event){
curPosX=document.body.scrollLeft+event.x;
curPosY=document.body.scrollTop+event.y;
}else{
curPosX=e.pageX;
curPosY=e.pageY;
}
if(o.value==""&&d)o.value=d;
with(document.getElementById("Calendar__")){
if(o!
=curCapture){
curCapture=o;
if(style.display=="block"){
style.left=curPosX+"px";
style.top=curPosY+"px";
}
elseload();
}
else{
if(style.display=="block")style.display="none";
elseload();
}
}
}
},
load:
function(){
with(Calendar){
curDay=loadDate(curCapture.value);
with(curDay){
year=getFullYear();
month=getMonth()+1;
date=getDate();
}
init();
}
},
init:
function(){
with(Calendar){
with(newDate(year,month-1,date)){
year=getFullYear();
month=getMonth()+1;
date=getDate();
setDate
(1);
varfirst=getDay();
setMonth(getMonth()+1,0)
paint(first,getDate());
}
}
},
paint:
function(first,last){
varcalendar=document.getElementById("Calendar__");
vargrid=document.getElementById("dataGrid__");
vari,l;
l=Math.ceil((first+last)/7);
if(!
document.all){
calendar.style.height=(41+19*Math.ceil((first+last)/7))+"px";
}
grid.innerHTML=newArray(l*7+1).join("
");
with(Calendar){
varstrDate="{0}-{1}".Format(year,month);
varisTodayMonth=((year==today.getFullYear())&&(month==today.getMonth()+1));
varisCurdayMonth=((year==curDay.getFullYear())&&(month==curDay.getMonth()+1));
vartodayDate=today.getDate();
for(i=0;igrid.childNodes[first+i].innerHTML='{1}'.Format(((i+1)==todayDate&&isTodayMonth)?
'class="today"':
isCurdayMonth&&(i+1)==curDay.getDate()?
'class="curDay"':
'',i+1,strDate);
}
document.getElementById("dateText__").innerHTML='<< < '+year+"-"+month+' (1);returnfalse"title="下一月">> >>';
with(calendar){
style.left=Calendar.curPosX+"px";
style.top=Calendar.curPosY+"px";
style.display="block";
}
}
},
turn:
function(num){
Calendar.month+=num;
Calendar.date=1;
Calendar.init();
},
setValue:
function(val){
with(Calendar){
curCapture.value="{0}-{1}-{2}".Format(year,month,val);
document.getElementById("Calendar__").style.display="none";
}
},
loadDate:
function(op,formatString){
formatString=formatString||"ymd";
varm,year,month,day;
switch(formatString){
case"ymd":
m=op.match(newRegExp("^((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})$"));
if(m==null)returnnewDate();
day=m[6];
month=m[5]*1;
year=(m[2].length==4)?
m[2]:
GetFullYear(parseInt(m[3],10));
break;
case"dmy":
m=op.match(newRegExp("^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$"));
if(m==null)returnnewDate();
day=m[1];
month=m[3]*1;
year=(m[5].length==4)?
m[5]:
GetFullYear(parseInt(m[6],10));
break;
default:
break;
}
if(!
parseInt(month))returnnewDate();
month=month==0?
12:
month;
vardate=newDate(year,month-1,day);
return(typeof(date)=="object"&&year==date.getFullYear()&&month==(date.getMonth()+1)&&day==date.getDate())?
date:
newDate();
functionGetFullYear(y){return((y<30?
"20":
"19")+y)|0;}
},
toString:
function(){return["Calendarv1.0","author:
我佛山人","email:
wfsr@","version:
1.0"].join("\n");}
//endregion
}
var__calendar_html="