http://www.softcomplex.com/products/tigra_calendar/看看这个吧,可以用

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/2839/2839512.xml?temp=.7292444
      

  2.   

    <script language="javascript">
    <!--
    function returnValue()
    {
      var dat = new Date();
      document.theForm.Last_Update_Date.value=dat.getFullYear()+"-"+eval(dat.getMonth() + 1)+"-"+dat.getDate();
    }
    //-->
    </script>
    <body onload="returnValue()">
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var date_start,date_end,g_object
    var today = new Date();
    var separator="-";
    var inover=false;
    function change_date(temp,mode)
    {
    var t_month,t_year
        if (mode){
            if(mode==1)
            t_month=parseInt(cele_date_month.value,10)+parseInt(temp,10);
            else
            t_month=parseInt(temp)
            if (t_month<cele_date_month.options(0).text) {
                cele_date_month.value=cele_date_month.options(cele_date_month.length-1).text;
                change_date(parseInt(cele_date_year.value,10)-1,0);
                }
            else{
                if (t_month>cele_date_month.options(cele_date_month.length-1).text){
                    cele_date_month.value=cele_date_month.options(0).text;
                    change_date(parseInt(cele_date_year.value,10)+1,0);
                    }            
                else
                    {cele_date_month.value=t_month;
                     set_cele_date(cele_date_year.value,cele_date_month.value);                
                    }
            }
        }  
        else{
            t_year=parseInt(temp,10);
            
            if (t_year<cele_date_year.options(0).text) {
                cele_date_year.value=cele_date_year.options(0).text;
                set_cele_date(cele_date_year.value,1);                
                }
            else{
                if (parseInt(t_year,10)>parseInt(cele_date_year.options(cele_date_year.length-1).text,10)){
                    cele_date_year.value=cele_date_year.options(cele_date_year.length-1).text;
                    set_cele_date(cele_date_year.value,12);                
                    }            
                else
                    {cele_date_year.value=t_year;
                     set_cele_date(cele_date_year.value,cele_date_month.value);                
                    }
            }
        }
        window.cele_date.focus();
    }
    function init(d_start,d_end)
    {
         var temp_str;
         var i=0
         var j=0
         date_start=new Date(2000,7,1)
         date_end=new Date(2004,8,1)
         document.writeln("<div name=\"cele_date\" id=\"cele_date\"  style=\"display:none\"    style=\"LEFT: 69px; POSITION: absolute; TOP: 159px;Z-INDEX:99\" onClick=\"event.cancelBubble=true;\" onBlur=\"hilayer()\" onMouseout=\"lostlayerfocus()\">? </div>");
         window.cele_date.innerHTML="";
         temp_str="<table border=\"1\" bgcolor=\"#4682b4\" bordercolor=\"white\"><tr><td colspan=7 onmouseover=\"overcolor(this)\">";
         temp_str+="<input type=\"Button\" value=\"<<\" onclick=\"change_date(-1,1)\" onmouseover=\"getlayerfocus()\" style=\"color: #FFFFFF; background-color: #5d7790; cursor: hand\">?年份";//左面的箭头
         temp_str+=""//年
         temp_str+="<select name=\"cele_date_year\" id=\"cele_date_year\" language=\"javascript\" onchange=\"change_date(this.value,0)\" onmouseover=\"getlayerfocus()\" onblur=\"getlayerfocus()\" style=\"font-size: 9pt; border: 1px #666666 outset; background-color: #F4F8FB\">"
         for (i=2000;i<=2020;i++)
         {
         temp_str+="<OPTION value=\""+i.toString()+"\">"+i.toString()+"</OPTION>";
         }
         temp_str+="</select>月份?";
         temp_str+=""//月
         temp_str+="<select name=\"cele_date_month\" id=\"cele_date_month\" language=\"javascript\" onchange=\"change_date(this.value,2)\" onmouseover=\"getlayerfocus()\" onblur=\"getlayerfocus()\" style=\"font-size: 9pt; border: 1px #666666 outset; background-color: #F4F8FB\">"
         for (i=1;i<=12;i++)
         {
         temp_str+="<OPTION value=\""+i.toString()+"\">"+i.toString()+"</OPTION>";
         }
         temp_str+="</select>?";
         temp_str+=""//右箭头
         temp_str+="<input type=\"Button\" value=\">>\" onclick=\"change_date(1,1)\" onmouseover=\"getlayerfocus()\"  style=\"color: #FFFFFF; background-color: #5d7790; cursor: hand\">";
         temp_str+="</td></tr><tr><td onmouseover=\"overcolor(this)\">"
         temp_str+="<font color=red>Su</font></td><td>";temp_str+="Mo</td><td>"; temp_str+="Tu</td><td>"; temp_str+="We</td><td>"
         temp_str+="Th</td><td>";temp_str+="Fr</td><td>"; temp_str+="Sa</td></tr>";
         for (i=1 ;i<=6 ;i++)
         {
         temp_str+="<tr>";
            for(j=1;j<=7;j++){
                temp_str+="<td name=\"c"+i+"_"+j+"\"id=\"c"+i+"_"+j+"\" style=\"CURSOR: hand\" style=\"COLOR:#000000\" language=\"javascript\" onmouseover=\"overcolor(this)\" onmouseout=\"outcolor(this)\" onclick=\"td_click(this)\">?</td>"
                }
         temp_str+="</tr>"        
         }
         temp_str+="</td></tr></table>";
         window.cele_date.innerHTML=temp_str;
    }
    function set_cele_date(year,month)
    {
       var i,j,p,k
       var nd=new Date(year,month-1,1);
       event.cancelBubble=true;
       cele_date_year.value=year;
       cele_date_month.value=month;   
       k=nd.getDay()-1
       var temp;
       for (i=1;i<=6;i++)
          for(j=1;j<=7;j++)
          {
          eval("c"+i+"_"+j+".innerHTML=\"\"");
          eval("c"+i+"_"+j+".bgColor=\"#4682b4\"");
          eval("c"+i+"_"+j+".style.cursor=\"hand\"");
          }
       while(month-1==nd.getMonth())
        { j=(nd.getDay() +1);
          p=parseInt((nd.getDate()+k) / 7)+1;
          eval("c"+p+"_"+j+".innerHTML="+"\""+nd.getDate()+"\"");
          if ((nd.getDate()==today.getDate())&&(cele_date_month.value==today.getMonth()+1)&&(cele_date_year.value==today.getYear())){
            eval("c"+p+"_"+j+".bgColor=\"#EFFB64\"");
          }
          if (nd>date_end || nd<date_start)
          {
          eval("c"+p+"_"+j+".bgColor=\"#FF9999\"");
          eval("c"+p+"_"+j+".style.cursor=\"text\"");
          }
          nd=new Date(nd.valueOf() + 86400000)
        }
    }
      

  3.   

    接上!function show_cele_date(eP,d_start,d_end,t_object)
    {
    window.cele_date.style.display="";
    window.cele_date.style.zIndex=99
    var s,cur_d
    var eT = eP.offsetTop;  
    var eH = eP.offsetHeight+eT;  
    var dH = window.cele_date.style.pixelHeight;  
    var sT = document.body.scrollTop; 
    var sL = document.body.scrollLeft; 
    event.cancelBubble=true;
    window.cele_date.style.posLeft = event.clientX-event.offsetX+sL-5;  
    window.cele_date.style.posTop = event.clientY-event.offsetY+eH+sT-5;
    if (window.cele_date.style.posLeft+window.cele_date.clientWidth>document.body.clientWidth) window.cele_date.style.posLeft+=eP.offsetWidth-window.cele_date.clientWidth;
    if (d_start!=""){
        if (d_start=="today"){
            date_start=new Date(today.getYear(),today.getMonth(),today.getDate());
        }else{
            s=d_start.split(separator);
            date_start=new Date(s[0],s[1]-1,s[2]);
        }
    }else{
        date_start=new Date(1900,1,1);
    }if (d_end!=""){
        s=d_end.split(separator);
        date_end=new Date(s[0],s[1]-1,s[2]);
    }else{
        date_end=new Date(3000,1,1);
    }g_object=t_objectcur_d=new Date()
    set_cele_date(cur_d.getYear(),cur_d.getMonth()+1);
    window.cele_date.style.display="block";
    window.cele_date.focus();
    }
    function td_click(t_object)
    {
    var t_d
    if (parseInt(t_object.innerHTML,10)>=1 && parseInt(t_object.innerHTML,10)<=31 ) 
    { t_d=new Date(cele_date_year.value,cele_date_month.value-1,t_object.innerHTML)
    if (t_d<=date_end && t_d>=date_start)
    {
    var year = cele_date_year.value;
    var month = cele_date_month.value;
    var day = t_object.innerHTML;
    if (parseInt(month)<10) month = "0" + month;
    if (parseInt(day)<10) day = "0" + day;
    g_object.value=year+separator+month+separator+day;
    window.cele_date.style.display="none";};
    }
    }
    function h_cele_date()
    {
    window.cele_date.style.display="none";
    }
    function overcolor(obj)
    {
      if (obj.style.cursor=="hand") obj.style.color = "#FFFFFF";
      inover=true;
      window.cele_date.focus();
    }
    function outcolor(obj)
    {
      obj.style.color = "#000000";
      inover=false;
    }
    function getNow(o){
        var Stamp=new Date();
        var year = Stamp.getYear();
        var month = Stamp.getMonth()+1;
        var day = Stamp.getDate();
        if(month<10){
    month="0"+month;
        }
        if(day<10){
    day="0"+day;
        }
        o.value=year+separator+month+separator+day;
    }
    function hilayer()
    {
    if (inover==false)
    {
    var lay=document.all.cele_date;
    lay.style.display="none";
    }
    }
    function getlayerfocus()
    {
    inover=true;
    }
    function lostlayerfocus()
    {
    inover=false;
    }
    //-->
    </SCRIPT>
    <script language="javascript">
             init();
    </script>
    <form name="theForm">
     <input type="text" name="Last_Update_Date" size="26" maxlength="19"  readonly>
    <input type="button" name="change2" value="展开"  onclick="show_cele_date(change2,'','',Last_Update_Date)">
    </form>