谢谢楼上的!
[email protected]
都可以的,谢谢~^_^

解决方案 »

  1.   

    梅花雪日历 是javascrit斑主写的meizz写的啊?
    你在CSDN里搜索日历就可以了.
      

  2.   

    http://www.meizz.com/Web/Download/Web_Calendar_30.rar
      

  3.   

    <html>
      <head>
        <meta http-equiv='Content-Type' content='text/html; charset=gb2312'>
        <style>
          *{font-size: 12px; font-family: 宋体}
          .code{font-weight: bold; color: #0000D0}
          legend{font-weight: bold; color: #D00000}
          fieldset{padding: 8 5 10 5}
        </style>
        <title>Web Calendar 网页日历</title>
      </head>
    <body>
      <script language="JavaScript" src="calendar.js"></script>  <div align=center><b style="font-size: 24px">Web Calendar ver 3.0 网页日历</b></div><form name=form1>  <fieldset><legend>版本描述</legend><pre style="margin: 0">
      <b>Web Calendar ver 3.0 是综合 JavaScript DHTML HTML CSS 的产品,且封装在 WebCalendar 实例中,调用与设置都非常方便</b>
      <b>Web Calendar ver 3.0 新加的功能:</b><br>
        1.对日历控件的对象式编程
        2.对不同浏览器的兼容
        3.对日历控件的样式颜色设置
        4.对是否返回时分秒的设置
        5.对年份下拉框的年跨度值的设置
        6.增加了用方向键快捷键选择年月
        7.增加了日历对网页空间的自适应显示
        8.对日历日期显示机制的全新设计    Web Calendar ver 3.0  Author: meizz(梅花雪疏影横斜)  mail: [email protected]
        Web Calendar ver 2.0  Author: walkingpoison(水晶龙)  mail: [email protected]  http://expert.csdn.net/Expert/TopicView1.asp?id=1264734
        Web Calendar ver 1.0  Author: meizz(梅花雪疏影横斜)  mail: [email protected]   http://expert.csdn.net/Expert/TopicView1.asp?id=1080595    在此我要特别感谢 walkingpoison(水晶龙) 和 emu(ston) 的大力支持,再次感谢!!</pre></fieldset>  <fieldset><legend>调用日历的代码示例</legend>  <b>Web Calendar 的第一种调用方法:</b>
      <input onfocus="calendar()"><br><br>代码:<span class=code>&lt;input onfocus="calendar()"&gt;</span><br><br>  <b>Web Calendar 的第二种调用方法:</b>
      <input name="txt" onfocus="calendar()"><input type=button value=calendar onclick="calendar(document.form1.txt)"><br><br>
      代码:<span class=code>&lt;input name="txt" onfocus="calendar()"&gt;&lt;input type=button
      value=calendar onclick="calendar(document.form1.txt)"&gt;</span></fieldset>
      <fieldset><legend>对日历控件的定制</legend>
      <table border=1 cellpadding=3 cellspacing=0>
        <tr><td><input value=50 onchange="WebCalendar.yearFall = parseInt(this.value, 10)"></td><td nowrap>定义年下拉框的年跨值(两倍)</td>
            <td><input value="yyyy-mm-dd" onchange="WebCalendar.format = this.value"></td><td nowrap>定义返回的日期格式(可以用数字,分隔符 - /)</td></tr>
        <tr><td><input type=checkbox onclick="WebCalendar.timeShow = this.checked"></td><td>定义是否返回时分秒</td>
            <td><input type=checkbox onclick="WebCalendar.drag = this.checked" checked></td><td>定义控件是否能被拖动</td></tr>
        <tr><td><input value="#0000D0" onchange="WebCalendar.darkColor  = this.value; this.style.backgroundColor = this.value"
        style="background-color: #0000D0; color: #FFFFFF"></td><td>控件的暗色</td>
            <td><input value="#FFFFFF" onchange="WebCalendar.lightColor = this.value; this.style.backgroundColor = this.value"
        style="background-color: #FFFFFF"></td><td>控件的亮色</td></tr>
        <tr><td><input value="#E6E6FA" onchange="WebCalendar.btnBgColor = this.value; this.style.backgroundColor = this.value"
        style="background-color: #E6E6FA"></td><td>控件的按钮背景色</td>
            <td><input value="#000080" onchange="WebCalendar.wordColor  = this.value; this.style.backgroundColor = this.value"
        style="background-color: #000080; color: #FFFFFF"></td><td>控件的文字颜色</td></tr>
        <tr><td><input value="#DCDCDC" onchange="WebCalendar.wordDark   = this.value; this.style.backgroundColor = this.value"
        style="background-color: #DCDCDC"></td><td>控件的暗文字颜色</td>
            <td><input value="#F5F5FA" onchange="WebCalendar.dayBgColor = this.value; this.style.backgroundColor = this.value"
        style="background-color: #F5F5FA"></td><td>日期数字背景色</td></tr>
        <tr><td><input value="#FF0000" onchange="WebCalendar.todayColor = this.value; this.style.backgroundColor = this.value"
        style="background-color: #FF0000"></td><td>今天在日历上的标示背景色</td>
            <td><input value="#D4D0C8" onchange="WebCalendar.DarkBorder = this.value; this.style.backgroundColor = this.value"
        style="background-color: #D4D0C8"></td><td>日期显示的立体表达色</td></tr>
      </table>
      </fieldset><br>  <fieldset><legend>标准调用示例</legend><pre style="margin: 0px">
      &lt;script language="JavaScript" src="calendar.js"&gt;&lt;/script&gt;
      
      注:下面这段日历定制的 JavaScript 代码你可以一个都不定义,使用其默认值
      &lt;script language="JavaScript"&gt;&lt;!--
        WebCalendar.yearFall   = 50;           //定义年下拉框的年差值
        WebCalendar.format     = "yyyy-mm-dd" | "2003-06-07"; //回传日期的格式
        WebCalendar.timeShow   = false | true; //是否返回时间
        WebCalendar.drag       = true  | false;//是否允许拖动
        WebCalendar.darkColor  = "#0000D0";    //控件的暗色
        WebCalendar.lightColor = "#FFFFFF";    //控件的亮色
        WebCalendar.btnBgColor = "#FFFFF5";    //控件的按钮背景色
        WebCalendar.wordColor  = "#000080";    //控件的文字颜色
        WebCalendar.wordDark   = "#DCDCDC";    //控件的暗文字颜色
        WebCalendar.dayBgColor = "#E6E6FA";    //日期数字背景色
        WebCalendar.todayColor = "#FF0000";    //今天在日历上的标示背景色
        WebCalendar.DarkBorder = "#D4D0C8";    //日期显示的立体表达色
      //--&gt;&lt;/script&gt;  &lt;input onfocus="calendar()"&gt;
      </pre>
      </fieldset><br>
      
      <fieldset><legend>Web Calendar 里的自定义函数名及其说明</legend>
      <table border=1 cellpadding=3 cellspacing=0><colgroup><col style="font-weight: bold"><col></colgroup>
        <tr><th>函数名           </th><th>函数的用途说明(在主页面里自定义函数时请不要与以下的函数名冲突)</th></tr>
        <tr><td>calendar()      </td><td>用户的主调函数</td></tr>
        <tr><td>writeIframe()   </td><td>对iframe进行初始化</td></tr>
        <tr><td>WebCalendar()   </td><td>初始化日历的设置</td></tr>
        <tr><td>funMonthSelect()</td><td>月份的下拉框</td></tr>
        <tr><td>funYearSelect() </td><td>年份的下拉框</td></tr>
        <tr><td>prevM()         </td><td>往前翻月份</td></tr>
        <tr><td>nextM()         </td><td>往后翻月份</td></tr>
        <tr><td>prevY()         </td><td>往前翻 Year</td></tr>
        <tr><td>nextY()         </td><td>往后翻 Year</td></tr>
        <tr><td>hiddenSelect()  </td><td>隐藏年份与月份的下拉框</td></tr>
        <tr><td>hiddenCalendar()</td><td>隐藏日历控件</td></tr>
        <tr><td>appendZero(n)   </td><td>日期自动补零程序</td></tr>
        <tr><td>dayMouseOver()  </td><td>日历里日期的 onmouseover 事件</td></tr>
        <tr><td>dayMouseOut()   </td><td>日历里日期的 onmouseout &nbsp;事件</td></tr>
        <tr><td>writeCalendar() </td><td>对日历显示数据的核心处理程序</td></tr>
        <tr><td>returnDate()    </td><td>根据日期格式等返回用户选定的日期</td></tr>
        <tr><td>document.onclick()</td><td nowrap><b class=code>if(WebCalendar.eventSrc != window.event.srcElement) hiddenCalendar();</b><br>
        若你要使用主网页的 document.onclick() 事件时,请加上上面这句代码(这句代码日历控件里已存在),<br>
        这句代码是当你点击日历以外的地方时日历自动关闭,若不使用 document.onclick() 事件就不需要再定义了.</td></tr>
        <tr><td>全局变量 WebCalendar</td><td>日历控件的实例,你可以通过它对日历进行定制</td></tr>
      </table></fieldset></form>
    </body>
    </html>
      

  4.   

    //日历
    var date_start,date_end,g_object
    var today = new Date();
    var separator="-";
    var s_DATE;
    var inover=false;//mode :时间变换的类型0-年 1-月 2-直接选择月
    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)
    {
    //alert('ss');
         var temp_str;
         var i=0
         var j=0
         date_start=new Date(1980,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=\"#DDDDDD\" bordercolor=\"white\"><tr><td colspan=7 onmouseover=\"overcolor(this)\">";
         temp_str+="<input type=\"Button\" value=\"<<\" onclick=\"change_date(-1,1)\" onmouseover=\"getlayerfocus()\" style=\"color: #000099; background-color: #BFBFBF; 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=1990;i<=2120;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: #000099; background-color: #BFBFBF; cursor: hand\">";     temp_str+="</td></tr><tr><td onmouseover=\"overcolor(this)\">"
         temp_str+="<font color=red>日</font></td><td>";temp_str+="一</td><td>"; temp_str+="二</td><td>"; temp_str+="三</td><td>"
         temp_str+="四</td><td>";temp_str+="五</td><td>"; temp_str+="六</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;
    }//   未完
      

  5.   

    function set_cele_date(year,month)
    {
       var i,j,p,k
       var nd=new Date(year,month-1,1);
       var s_flag=0;
       var cur_d2;
       var PatternDate=/^1|2\d{3}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3([0|1])))$/;
    if(s_DATE!='')
    {
    if(PatternDate.test(s_DATE))
    {
       var s2=s_DATE.split(separator);
       cur_d2=new Date(s2[0],s2[1],s2[2]);
       s_flag=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=\"#DDDDDD\"");
          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(s_flag==1)
          {
    if ((nd.getDate()==cur_d2.getDate())&&(cele_date_month.value==cur_d2.getMonth())&&(cele_date_year.value==cur_d2.getYear())){
     eval("c"+p+"_"+j+".bgColor=\"#FFcB64\"");
    }
          }
          
          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)
        }
    }//s_object:点击的对象;d_start-d_end有效的时间区段;需要存放值的控件;
    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()
    //做了修改 开始
    var PatternDate=/^1|2\d{3}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3([0|1])))$/;
    s_DATE=t_object.value;
    if(s_DATE!='')
    {
    if(PatternDate.test(s_DATE))
    {
       var s2=s_DATE.split(separator);
       var cur_d2=new Date(s2[0],s2[1],s2[2]);
       set_cele_date(cur_d2.getYear(),cur_d2.getMonth());
    }
    else
    {
    set_cele_date(cur_d.getYear(),cur_d.getMonth()+1);
    }
    }
    else
    {
       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;
    }
    init();
    //日历结束
      

  6.   

    调用:
    <td align=right>
       
         送样日期从
         <input  name="startdate" value="<%=startdate%>" onclick="show_cele_date(this,'','',this)">
         到
         <input  name="enddate" value="<%=enddate%>" onclick="show_cele_date(this,'','',this)">
    </td>