listday_cal_month.php

来自「极限OA开源系统」· PHP 代码 · 共 160 行

PHP
160
字号
<?
/********************************************************************************/
/* 极限办公自动化系统 (极限OA)													*/
/* ========================      												*/
/* 欢迎使用 极限OA,在您开始使用之前,请务必完整阅读本软件附带的全部说明档				*/
/********************************************************************************/
/* Welcome to http://www.xsp.cn & http://oa.xsp.cn								*/
/* 技术支持论坛 http://www.1119.net												*/
/********************************************************************************/
/* 商业购买请联系 临海市极限网络有限公司											*/
/* 联系电话: (0576) 5131349	邮件: mkt@xsp.cn	QQ: 562873							*/
/********************************************************************************/
class Calendar{
    var $YEAR,$MONTH,$DAY;
    var $WEEK=array("日","一","二","三","四","五","六");
    var $_MONTH=array(
            "01"=>"一月",
            "02"=>"二月",
            "03"=>"三月",
            "04"=>"四月",
            "05"=>"五月",
            "06"=>"六月",
            "07"=>"七月",
            "08"=>"八月",
            "09"=>"九月",
            "10"=>"十月",
            "11"=>"十一",
            "12"=>"十二"
        );


    function Calendar($time,$diary_list,$diary_count){
		$this->setYear(date('Y',$time));
		$this->setMonth(date('m',$time));
		$this->setDay(date('d',$time));
		$this->diary_list=$diary_list;
		$this->diary_count=$diary_count;
    }

    //设置年份
    function setYear($year){
        $this->YEAR=$year;
    }
    //获得年份
    function getYear(){
        return $this->YEAR;
    }
    //设置月份
    function setMonth($month){
        $this->MONTH=$month;
    }
    //获得月份
    function getMonth(){
        return $this->MONTH;
    }
    //设置日期
    function setDay($day){
        $this->DAY=sprintf("%d",$day);
    }
    //获得日期
    function getDay(){
        return $this->DAY;
    }
    //打印日历
    function OUT(){
        //$this->_env();
        $week=$this->getWeek($this->YEAR,$this->MONTH,$this->DAY);//获得日期为星期几 (例如今天为2003-07-18,星期五)
        $fweek=$this->getWeek($this->YEAR,$this->MONTH,1);//获得此月第一天为星期几
		$lmonth = date("Y-m-",mktime(0,0,0,$this->MONTH - 1,1,$this->YEAR));//获得上月所在的年月
		$nmonth = date("Y-m-",mktime(0,0,0,$this->MONTH + 1,1,$this->YEAR));//获得下月所在的年月
		if($fweek != 0) {
			$l_days = date("t",mktime(0,0,0,$this->MONTH - 1,1,$this->YEAR));
		}
        $fweek2=$this->getWeek($this->YEAR,$this->MONTH + 1,1);//获得此月第一天为星期几
		if($fweek2 != 0) {
			$n_days = date("t",mktime(0,0,0,$this->MONTH + 1,$this->DAY,$this->YEAR));
		}

        
        for($Tmpb=1;$Tmpb<=date("t",mktime(0,0,0,$this->MONTH,$this->DAY,$this->YEAR));$Tmpb++){//打印所有日期(给定月份所有天数)
            if(strcmp($Tmpb,$this->DAY)==0 && strcmp(date('m'),$this->MONTH)==0 && strcmp(date('Y'),$this->YEAR)==0){    //获得当前日期,做标记   strcmp -> 相等
                $tdbgc='#FF9933';
            }else{
                $tdbgc='#e0e0e0';
            }
            if($Tmpb==1){
                $out .= "<tr>";        //补充打印
                for($Tmpc=$fweek - 1;$Tmpc>=0;$Tmpc--){
					$tmp_ld = $l_days - $Tmpc;
                    $out .= "<td bgcolor='#F0F0F0' valign='top'>
                                  <table width='100%'>
                                    <tr><td rowspan='2' align='center' nowrap></td><td align='right'  width='2%'><b><font size=4>$tmp_ld</font></b></td></tr>
                                    <tr></tr>
                                  </table></td>"; // 打印此月第一天之前的空表格
                }
            }
			$temp_di3 = $temp_di4 = '';
			$temp_di2 = $this->YEAR.'-'.$this->MONTH.'-'.$Tmpb;
			
			if($this->diary_count[$temp_di2] > 0 && $this->diary_count[$temp_di2] < 5) {
				if(is_array($this->diary_list)) {
					foreach($this->diary_list AS $key => $val) {
						if($val[tdate] == $temp_di2)
							$temp_di3 .= "<a href='#' title='标题:$val[title]' onclick=\""."window.showModalDialog('dailyop.php?action=listday&sysaction=show&id=$val[id]',window,'dialogWidth:550px;dialogHeight:500px;status:no;help:no;scroll:no')"."\">$val[title]</a><br>";
					}
				}
			}elseif($this->diary_count[$temp_di2] > 0) {
				if(is_array($this->diary_list)) {
					$temp_di3 = "<div id='yes$temp_di2' class=sc1 style=\"width: 50; height: 58; overflow: hidden;\">";
					foreach($this->diary_list AS $key => $val) {
						if($val[tdate] == $temp_di2)
							$temp_di3 .= "<a href='#' title='标题:$val[title]' onclick=\""."window.showModalDialog('dailyop.php?action=listday&sysaction=show&id=$val[id]',window,'dialogWidth:550px;dialogHeight:500px;status:no;help:no;scroll:no')"."\">$val[title]</a><br>";
					}
					$temp_di3 .= '</div>';
					$temp_di4 = "<td><a onmouseover=\"return doScrollerIE('up','yes$temp_di2',10)\" onmouseout=\"clearInterval(sRepeat)\"><img src=\"./images/icon_Up.gif\" width='9' height='6' alt='向上滚动' border='0'></A><br>
                                        <br>
                                        <a onmouseover=\"return doScrollerIE('down','yes$temp_di2',10)\" onmouseout=\"clearInterval(sRepeat)\"><img src=\"./images/icon_Down.gif\" width='9' height='6' alt='向下滚动' border='0'></A></td>";
				}
			}
			$out_tmp = "<td align=center bgcolor=$tdbgc height='70' valign='top'>
                                  <table width='100%'>
                                    <tr> 
                                      <td rowspan='2' align='center' nowrap>$temp_di3
                                        
                                      </td>
                                      <td align='right'  width='2%'><b><font size=4>$Tmpb</font></b></td>
                                    </tr>
                                    <tr>$temp_di4</tr></table></td>";
            if(strcmp($this->getWeek($this->YEAR,$this->MONTH,$Tmpb),0)==0){
                $out .= "<tr>$out_tmp";
            }else{
                $out .= $out_tmp;
            }
        }
		if($fweek2 != 0) {
                for($Tmpc=0;$Tmpc<(7-$fweek2);$Tmpc++){
					$tmp_ld = $Tmpc + 1;
                    $out .= "<td bgcolor='#F0F0F0' valign='top'>
                                  <table width='100%'>
                                    <tr><td rowspan='2' align='center' nowrap></td><td align='right' width='2%'><b><font size=4>$tmp_ld</font></b></td></tr>
                                    <tr></tr>
                                  </table></td>"; // 打印此月最后一天之后的空表格
                }
		}

        return $out;
    }
    //获得方法内指定的日期的星期数
    function getWeek($year,$month,$day){
        $week=date("w",mktime(0,0,0,$month,$day,$year));//获得星期
        return $week;//获得星期
    }

}




?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?