• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

一个很好的日历控件(采用javascript编_js

javascript 搞代码 7年前 (2018-06-13) 190次浏览 已收录 0个评论

 

该日历控件采用js编写,来自MS的 http://expo.live.com,本站整理,希望对大家有用。

本程序中需要的两个图片:
http://expo.live.com/http://www.webjx.com/htmldata/2006-04-04/Images/leftArrow.gif
http://expo.live.com/http://www.webjx.com/htmldata/2006-04-04/Images/rightArrow.gif

Global.css

 

td.negDate  a
{
       color: #808080;
}
.calendar

{

       padding-left: 4px;

       padding-right: 4px;

}

http://www.gaodaima.com/?p=28140

.calendar table
{

       border-bottom: solid 1px #366AB3;

       text-align: center;

       padding: 0;

}

.calendar table a
{

       color: black;

}

.calendar td {

       padding: 4px;

       font-size: 8pt;

       font-weight: lighter;

}

.calendarhd
{

       color: #366AB3;

       text-transform: uppercase;

}

.calendarDays
{

       border-bottom: solid 1px;

       color: #808080;

       padding: 0;

       margin: 0;

}

.selectedDate {

      background: orange;

}

.selectedDate a {

       color: white !important;

}

 

Global.js

 

var calendar_DayNames = new Array(““,”“,”“,”“,”“,”“,”“);

var calendar_MonthNames = new Array(“一月“,”二月“,”三月“,”四月“,”五月“,”六月“,”七月“,”八月“,”九月“,”十月“,”十一月“,”十二月“);

 

function showCalendar(targetID, targetURL, dMonth, dYear, dDay)

{

    if(dMonth < 0)

    {       

        dMonth = 11;

        dYear–;

    }

    if(dMonth > 11)

    {

        dMonth = 0;

        dYear++;

    }

 

    var dNow = new Date();

    if(dDay == 90 && dMonth == dNow.getMonth() && dYear == dNow.getYear()) dDay = dNow.getDate();

    var dCurFD = new Date(dYear, dMonth, 1);

    var dGivenDate = new Date(dYear, dMonth, dDay); 

    var dCurrentMonthFirstSunday = dCurFD.getDay();

    var dCurrentViewDate = new Date(dCurFD);

    var iDays = 0;

    var weekMilliseconds = 1000*60*60*24*7;

    if(dCurrentMonthFirstSunday > 0) iDays = -dCurrentMonthFirstSunday;

   

    var fTrgt = targetURL;

    while (fTrgt.indexOf(“‘”) >= 0) fTrgt = fTrgt.replace(“‘”, “`”);

    while (fTrgt.indexOf(“`”) >= 0) fTrgt = fTrgt.replace(“`”, “//'”);

   

    var oBuf = ‘<TABLE BORDER=”0″ WIDTH=”100%” CELLSPACING=”0″ CELLPADDING=”0″>’;      

    oBuf += ‘<TR><TD CLASS=”calendarhd”><A HREF=”JavaScript:showCalendar(/” + targetID + “‘,'” + fTrgt + “‘,” + (dMonth – 1) + ‘,’ + dYear + ‘,90);”><img src=”http://www.webjx.com/htmldata/2006-04-04/Images/leftArrow.gif&#8221; border=0 /></A></TD>’;

    oBuf += ‘<TD COLSPAN=”5″ CLASS=”calendarhd”>’ + (calendar_MonthNames[dMonth]) + ‘ ‘ + dYear + ‘</TD>’;

    oBuf += ‘<TD CLASS=”calendarhd”><A HREF=”javascript:showCalendar(/” + targetID + “‘,'” + fTrgt + “‘,” + (dMonth + 1) + ‘,’ + dYear + ‘,90);”><img src=”http://www.webjx.com/htmldata/2006-04-04/Images/rightArrow.gif&#8221;  border=0 /></A></TD></TR>’;

    oBuf += ‘<TR style=”calendarhdrow”>’;

   

    for(var e=0; e < 7; e++) oBuf += ‘<TD CLASS=”calendarDays”>’ + calendar_DayNames[e] + ‘</TD>’;         

    oBuf += ‘</TR>’;

 

    var nextMonthFirstDay = new Date(dYear, dMonth+1, 1);

    var IsNextMonthFirstDaySunday = nextMonthFirstDay.getDay()==0;

       

    for(var iRows=0; iRows < 6; iRows++)

    {

        dCurrentMonthDate = new Date(dCurFD.getFullYear(), dCurFD.getMonth(), dCurFD.getDate() + iDays);

        if(1==1)        

        {

        if(iRows==5 && dCurrentMonthDate.getMonth() > dCurFD.getMonth()) continue;       

        if(iRows==5 && IsNextMonthFirstDaySunday) continue;

               

        oBuf += ‘<TR CLASS=”calendarContent”>’;

        for(var iCols=0; iCols < 7; iCols++)

        {

            dCurrentViewDate = new Date(dCurFD.getFullYear(), dCurFD.getMonth(), dCurFD.getDate() + iDays);

 

            if((dGivenDate.toDateString() == dCurrentViewDate.toDateString()) && (dDay != 90))

            {

                oBuf += ‘<TD CLASS=”selectedDate”>’;

            }

            else

            {

                if(dCurrentViewDate.getMonth() != dMonth || iDays < 0)

                {

                    oBuf += ‘<TD CLASS=”negDate”>’;

                }

                else

                {

                    oBuf += ‘<TD CLASS=”posDate”>’;

                }

            }           

            var args;

           

            if (targetURL.substr(0,11) == ‘javascript:’)

            {

              args = dCurrentViewDate.valueOf() + “)”;

            }

            else

            {

              var sep = targetURL.indexOf(‘?’) < 0 ? ‘?’ : ‘&’;

              args = sep + ‘startDate=’ + dCurrentViewDate.getFullYear()+ ‘-‘ + (dCurrentViewDate.getMonth()+1) + ‘-‘ +dCurrentViewDate.getDate() ;

            }

            oBuf += ‘<A HREF=”‘ + targetURL +  args + ‘”>’ + dCurrentViewDate.getDate() + ‘</A></TD>’;

            iDays++;

        }

        oBuf += ‘</TR>’;

        }

    }

    oBuf += ‘</TABLE>’;

    document.getElementById(targetID).innerHTML = oBuf;

}

调用

<LINK href=”Global.css” rel=”stylesheet”>
<script type=”text/javascript” src=”global.js“></script>

<div id=”calendar1″ class=”calendar”></div>

<script type=”text/javascript”>

    var dNow = new Date();

    showCalendar(‘calendar1′, FileName.aspx’, dNow.getMonth(), dNow.getFullYear(), dNow.getDate())

</script>

欢迎大家阅读《一个很好的日历控件(采用javascript编…_js》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:一个很好的日历控件(采用javascript编_js

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址