好多Javascript日期选择器呀-4

本文介绍了一个使用JavaScript实现的日历插件,该插件能够显示当前日期,并允许用户选择不同的月份查看对应的日历。文章详细展示了如何通过JavaScript来动态生成每个月的日期,并对特定日期进行样式标记。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<ScriptLANGUAGE="JavaScript">
varmonths=newArray("一","二","三","四","五","六","七","八","九","十","十一","十二");
vardaysInMonth=newArray(31,28,31,30,31,30,31,31,30,31,30,31);
vardays=newArray("日","一","二","三","四","五","六");
varclassTemp;
vartoday=newgetToday();
varyear=today.year;
varmonth=today.month;
varnewCal;

functiongetDays(month,year){
if(1==month)return((0==year%4)&&(0!=(year%100)))||(0==year%400)?29:28;
elsereturndaysInMonth[month];
}

functiongetToday(){
this.now=newDate();
this.year=this.now.getFullYear();
this.month=this.now.getMonth();
this.day=this.now.getDate();
}

functionCalendar(){
newCal=newDate(year,month,1);
today=newgetToday();
varday=-1;
varstartDay=newCal.getDay();
varendDay=getDays(newCal.getMonth(),newCal.getFullYear());
vardaily=0;
if((today.year==newCal.getFullYear())&&(today.month==newCal.getMonth()))
{
day=today.day;
}
varcaltable=document.all.caltable.tBodies.calendar;
varintDaysInMonth=getDays(newCal.getMonth(),newCal.getFullYear());

for(varintWeek=0;intWeek<caltable.rows.length;intWeek++)
for(varintDay=0;intDay<caltable.rows[intWeek].cells.length;intDay++)
{
varcell=caltable.rows[intWeek].cells[intDay];
varmontemp=(newCal.getMonth()+1)<10?("0"+(newCal.getMonth()+1)):(newCal.getMonth()+1);
if((intDay==startDay)&&(0==daily)){daily=1;}
vardaytemp=daily<10?("0"+daily):(daily);
vard="<"+newCal.getFullYear()+"-"+montemp+"-"+daytemp+">";
if(day==daily)cell.className="DayNow";
elseif(intDay==6)cell.className="DaySat";
elseif(intDay==0)cell.className="DaySun";
elsecell.className="Day";
if((daily>0)&&(daily<=intDaysInMonth))
{
cell.innerText=daily;
daily++;
}else
{
cell.className="CalendarTD";
cell.innerText="";
}
}
document.all.year.value=year;
document.all.month.value=month+1;
}

functionsubMonth()
{
if((month-1)<0)
{
month=11;
year=year-1;
}else
{
month=month-1;
}
Calendar();
}

functionaddMonth()
{
if((month+1)>11)
{
month=0;
year=year+1;
}else
{
month=month+1;
}
Calendar();
}

functionsetDate()
{
if(document.all.month.value<1||document.all.month.value>12)
{
alert("月的有效范围在1-12之间!");
return;
}
year=Math.ceil(document.all.year.value);
month=Math.ceil(document.all.month.value-1);
Calendar();
}
</Script>

<Script>
functionbuttonOver()
{
varobj=window.event.srcElement;
obj.runtimeStyle.cssText="background-color:#FFFFFF";
//obj.className="Hover";
}

functionbuttonOut()
{
varobj=window.event.srcElement;
window.setTimeout(function(){obj.runtimeStyle.cssText="";},300);
}
</Script>

<Style>
Input{font-family:verdana;font-size:9pt;text-decoration:none;background-color:#FFFFFF;height:20px;border:1pxsolid#666666;color:#000000;}

.Calendar{font-family:verdana;text-decoration:none;width:170;background-color:#C0D0E8;font-size:9pt;border:0pxdotted#1C6FA5;}
.CalendarTD{font-family:verdana;font-size:7pt;color:#000000;background-color:#f6f6f6;height:20px;width:11%;text-align:center;}

.Title{font-family:verdana;font-size:11pt;font-weight:normal;height:24px;text-align:center;color:#333333;text-decoration:none;background-color:#A4B9D7;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-bottom-style:1px;border-top-color:#999999;border-right-color:#999999;border-bottom-color:#999999;border-left-color:#999999;}

.Day{font-family:verdana;font-size:7pt;color:#243F65;background-color:#E5E9F2;height:20px;width:11%;text-align:center;}
.DaySat{font-family:verdana;font-size:7pt;color:#FF0000;text-decoration:none;background-color:#E5E9F2;text-align:center;height:18px;width:12%;}
.DaySun{font-family:verdana;font-size:7pt;color:#FF0000;text-decoration:none;background-color:#E5E9F2;text-align:center;height:18px;width:12%;}
.DayNow{font-family:verdana;font-size:7pt;font-weight:bold;color:#000000;background-color:#FFFFFF;height:20px;text-align:center;}

.DayTitle{font-family:verdana;font-size:9pt;color:#000000;background-color:#C0D0E8;height:20px;width:11%;text-align:center;}
.DaySatTitle{font-family:verdana;font-size:9pt;color:#FF0000;text-decoration:none;background-color:#C0D0E8;text-align:center;height:20px;width:12%;}
.DaySunTitle{font-family:verdana;font-size:9pt;color:#FF0000;text-decoration:none;background-color:#C0D0E8;text-align:center;height:20px;width:12%;}

.DayButton{font-family:Webdings;font-size:9pt;font-weight:bold;color:#243F65;cursor:hand;text-decoration:none;}

</Style>


<tableborder="0"cellpadding="0"cellspacing="1"class="Calendar"id="caltable">
<thead>
<tralign="center"valign="middle">
<tdcolspan="7"class="Title">
<ahref="javaScript:subMonth();"title="上一月"Class="DayButton">3</a><inputname="year"type="text"size="4"maxlength="4"onkeydown="if(event.keyCode==13){setDate()}"onkeyup="this.value=this.value.replace(/[^0-9]/g,'')"onpaste="this.value=this.value.replace(/[^0-9]/g,'')">年<inputname="month"type="text"size="1"maxlength="2"onkeydown="if(event.keyCode==13){setDate()}"onkeyup="this.value=this.value.replace(/[^0-9]/g,'')"onpaste="this.value=this.value.replace(/[^0-9]/g,'')">月<ahref="JavaScript:addMonth();"title="下一月"Class="DayButton">4</a>
</td>
</tr>
<tralign="center"valign="middle">
<ScriptLANGUAGE="JavaScript">
document.write("<TDclass=DaySunTitleid=diary>"+days[0]+"</TD>");
for(varintLoop=1;intLoop<days.length-1;intLoop++)
document.write("<TDclass=DayTitleid=diary>"+days[intLoop]+"</TD>");
document.write("<TDclass=DaySatTitleid=diary>"+days[intLoop]+"</TD>");
</Script>
</TR>
</thead>
<TBODYborder=1cellspacing="0"cellpadding="0"ID="calendar"ALIGN=CENTERONCLICK="getDiary()">
<ScriptLANGUAGE="JavaScript">
for(varintWeeks=0;intWeeks<6;intWeeks++)
{
document.write("<TRstyle='cursor:hand'>");
for(varintDays=0;intDays<days.length;intDays++)document.write("<TDclass=CalendarTDonMouseover='buttonOver();'onMouseOut='buttonOut();'></TD>");
document.write("</TR>");
}
</Script>
</TBODY>
</TABLE>
<ScriptLANGUAGE="JavaScript">
Calendar();
</Script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值