建立一个date.js,然后 <asp:TextBox
ID="TextBox_date" runat="server" MaxLength="15" Width="147px"
onfocus="javascript:HS_setDate(this);"></asp:TextBox>
---------------js代码---------
function HS_DateAdd(interval,number,date){
number = parseInt(number);
if (typeof(date)=="string"){var date = new
Date(date.split("-")[0],date.split("-")[1],date.split("-")[2])}
if (typeof(date)=="object"){var date =
date}
switch(interval){
case "y":return new
Date(date.getFullYear()+number,date.getMonth(),date.getDate());
break;
case "m":return new
Date(date.getFullYear(),date.getMonth()+number,checkDate(date.getFullYear(),date.getMonth()+number,date.getDate()));
break;
case "d":return new
Date(date.getFullYear(),date.getMonth(),date.getDate()+number);
break;
case "w":return new
Date(date.getFullYear(),date.getMonth(),7*number+date.getDate());
break;
}
}
function checkDate(year,month,date){
var enddate =
["31","28","31","30","31","30","31","31","30","31","30","31"];
var returnDate = "";
if (year%4==0){enddate[1]="29"}
if
(date>enddate[month]){returnDate =
enddate[month]}else{returnDate = date}
return returnDate;
}
function WeekDay(date){
var theDate;
if (typeof(date)=="string"){theDate = new
Date(date.split("-")[0],date.split("-")[1],date.split("-")[2]);}
if (typeof(date)=="object"){theDate = date}
return theDate.getDay();
}
function HS_calender(){
var lis = "";
var style = "";
style +="<style
type='text/css'>";
style +=".calender { 170px; height:auto;
font-size:12px; margin-right:14px; background:#ffffff; border:1px
solid #397EAE; padding:1px}";
style +=".calender ul {list-style-type:none;
margin:0; padding:0;}";
style +=".calender .day {
background-color:#EDF5FF; height:20px;}";
style +=".calender .day li,.calender .date li{
float:left; 14%; height:20px; line-height:20px;
text-align:center}";
style +=".calender li a { text-decoration:none;
font-family:Tahoma; font-size:11px; color:#333}";
style +=".calender li a:hover { color:#f30;
text-decoration:underline}";
style +=".calender li a.hasArticle
{font-weight:bold; color:#f60 !important}";
style +=".lastMonthDate, .nextMonthDate
{color:#bbb;font-size:11px}";
style +=".selectThisYear a, .selectThisMonth
a{text-decoration:none; margin:0 2px; color:#000;
font-weight:bold}";
style +=".calender .LastMonth, .calender
.NextMonth{ text-decoration:none; color:#000; font-size:18px;
font-weight:bold; line-height:16px;}";
style +=".calender .LastMonth {
float:left;}";
style +=".calender .NextMonth {
float:right;}";
style +=".calenderBody {clear:both}";
style +=".calenderTitle
{text-align:center;height:20px; line-height:20px;
clear:both}";
style +=".today {
background-color:#ffffaa;border:1px solid #f60;
padding:2px}";
style +=".today a { color:#f30; }";
style +=".calenderBottom {clear:both;
border-top:1px solid #ddd; padding: 3px 0; text-align:left}";
style +=".calenderBottom a {text-decoration:none;
margin:2px !important; font-weight:bold; color:#000}";
style +=".calenderBottom
a.closeCalender{float:right}";
style +=".closeCalenderBox {float:right;
border:1px solid #000; background:#fff; font-size:9px; 11px;
height:11px; line-height:11px; text-align:center;overflow:hidden;
font-weight:normal !important}";
style
+="</style>";
var now;
if (typeof(arguments[0])=="string"){
selectDate =
arguments[0].split("-");
var year = selectDate[0];
var month =
parseInt(selectDate[1])-1+"";
var date = selectDate[2];
now = new
Date(year,month,date);
}else if (typeof(arguments[0])=="object"){
now = arguments[0];
}
var lastMonthEndDate =
HS_DateAdd("d","-1",now.getFullYear()+"-"+now.getMonth()+"-01").getDate();
var lastMonthDate =
WeekDay(now.getFullYear()+"-"+now.getMonth()+"-01");
var thisMonthLastDate =
HS_DateAdd("d","-1",now.getFullYear()+"-"+(parseInt(now.getMonth())+1).toString()+"-01");
var thisMonthEndDate =
thisMonthLastDate.getDate();
var thisMonthEndDay =
thisMonthLastDate.getDay();
var todayObj = new Date();
todayObj = now;
today =
todayObj.getFullYear()+"-"+todayObj.getMonth()+"-"+todayObj.getDate();
for (i=0; i<lastMonthDate;
i++){ // Last Month's Date
lis = "<li
class='lastMonthDate'>"+lastMonthEndDate+"</li>"
+ lis;
lastMonthEndDate--;
}
for (i=1; i<=thisMonthEndDate;
i++){ // Current Month's Date
if(today ==
now.getFullYear()+"-"+now.getMonth()+"-"+i){
var
todayString =
now.getFullYear()+"-"+(parseInt(now.getMonth())+1).toString()+"-"+i;
lis +=
"<li><a
href=javascript:void(0) class='today'
onclick='_selectThisDay(this)'
title='"+now.getFullYear()+"-"+(parseInt(now.getMonth())+1)+"-"+i+"'>"+i+"</a></li>";
}else{
lis +=
"<li><a
href=javascript:void(0) onclick='_selectThisDay(this)'
title='"+now.getFullYear()+"-"+(parseInt(now.getMonth())+1)+"-"+i+"'>"+i+"</a></li>";
}
}
var j=1;
for (i=thisMonthEndDay; i<6;
i++){ // Next Month's Date
lis += "<li
class='nextMonthDate'>"+j+"</li>";
j++;
}
lis += style;
var CalenderTitle = "<a
href='javascript:void(0)' class='NextMonth'
onclick=HS_calender(HS_DateAdd('m',1,'"+now.getFullYear()+"-"+now.getMonth()+"-"+now.getDate()+"'),this)
title='Next
Month'>»</a>";
CalenderTitle += "<a
href='javascript:void(0)' class='LastMonth'
onclick=HS_calender(HS_DateAdd('m',-1,'"+now.getFullYear()+"-"+now.getMonth()+"-"+now.getDate()+"'),this)
title='Previous
Month'>«</a>";
CalenderTitle += "<span
class='selectThisYear'><a
href='javascript:void(0)' onclick='CalenderselectYear(this)'
title='Click here to select other year'
>"+now.getFullYear()+"</a></span>年<span
class='selectThisMonth'><a
href='javascript:void(0)' onclick='CalenderselectMonth(this)'
title='Click here to select other
month'>"+(parseInt(now.getMonth())+1).toString()+"</a></span>月";
if (arguments.length>1){
arguments[1].parentNode.parentNode.getElementsByTagName_r("ul")[1].innerHTML
= lis;
arguments[1].parentNode.innerHTML
= CalenderTitle;
}else{
var CalenderBox =
style+"<div
class='calender'><div
class='calenderTitle'>"+CalenderTitle+"</div><div
class='calenderBody'><ul
class='day'><li>日</li><li>一</li><li>二</li><li>三</li><li>四</li><li>五</li><li>六</li></ul><ul
class='date'
id='thisMonthDate'>"+lis+"</ul></div><div
class='calenderBottom'><a
href='javascript:void(0)' class='closeCalender'
onclick='closeCalender(this)'>×</a><span><span><a
href=javascript:void(0) onclick='_selectThisDay(this)'
title='"+todayString+"'>今天</a><a
href=javascript:void(0) onclick='_selectThisDay(this)'
title=''>清空</a></span></span></div></div>";
return CalenderBox;
}
}
function _selectThisDay(d){
var boxObj =
d.parentNode.parentNode.parentNode.parentNode.parentNode;
boxObj.targetObj.value =
d.title;
boxObj.parentNode.removeChild(boxObj);
}
function closeCalender(d){
var boxObj =
d.parentNode.parentNode.parentNode;
boxObj.parentNode.removeChild(boxObj);
}
function CalenderselectYear(obj){
var opt = "";
var thisYear =
obj.innerHTML;
for (i=1970;
i<=2020; i++){
if
(i==thisYear){
opt
+= "<option value="+i+"
selected>"+i+"</option>";
}else{
opt
+= "<option
value="+i+">"+i+"</option>";
}
}
opt = "<select
onblur='selectThisYear(this)' onchange='selectThisYear(this)'
style='font-size:11px'>"+opt+"</select>";
obj.parentNode.innerHTML =
opt;
}
function selectThisYear(obj){
HS_calender(obj.value+"-"+obj.parentNode.parentNode.getElementsByTagName_r("span")[1].getElementsByTagName_r("a")[0].innerHTML+"-1",obj.parentNode);
}
function CalenderselectMonth(obj){
var opt = "";
var thisMonth =
obj.innerHTML;
for (i=1; i<=12;
i++){
if
(i==thisMonth){
opt
+= "<option value="+i+"
selected>"+i+"</option>";
}else{
opt
+= "<option
value="+i+">"+i+"</option>";
}
}
opt = "<select
onblur='selectThisMonth(this)' onchange='selectThisMonth(this)'
style='font-size:11px'>"+opt+"</select>";
obj.parentNode.innerHTML =
opt;
}
function selectThisMonth(obj){
HS_calender(obj.parentNode.parentNode.getElementsByTagName_r("span")[0].getElementsByTagName_r("a")[0].innerHTML+"-"+obj.value+"-1",obj.parentNode);
}
function HS_setDate(inputObj){
var
calenderID = "MY_HS_setDate_ID";
var calenderObj =
document.createElement_x_x_x("span");
var GetCalenderID =
document.getElementByIdx(calenderID);
if (GetCalenderID!=null)
GetCalenderID.parentNode.removeChild(GetCalenderID);
calenderObj.id= calenderID;
if (inputObj.value!="")
calenderObj.innerHTML = HS_calender(inputObj.value);
else
calenderObj.innerHTML = HS_calender(new Date());
calenderObj.style.position = "absolute";
calenderObj.targetObj = inputObj;
inputObj.parentNode.insertBefore(calenderObj,inputObj.nextSibling);
}