Calendar(日历)使用说明

DoitPHP扩展类Calendar(日历),用于输出日历(数组),并支持标记功能。

类方法使用说明

1、setYear($year)

设置日历的年份。 默认为当前的年份
参数说明:
$year : 所要设置的年份

2、setMonth($month)

设置月份。 默认为当前月份
参数说明:
$month : 所要设置的月份

3、setUsedDays($days)

设置已占用的日期
参数说明:
$days : 已占用的日期。注:本参数为数组

4、render()

输出日历数组
参数说明:
参数为空

使用举例

例一、

Controller文件代码内容如下:

public function indexAction() {
    
    $calendarObj = $this->instance('Calendar');    

    $data = $calendarObj->render();

    $this->assign('tab', $data);

    $this->display();
}

视图文件内容如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>实例:日历</title>
</head>

<body>
<table border="0" cellspacing="1" cellpadding="0" style="border:1px solid #eee;">
  <tr>
    <td height="30" colspan="7" align="center">
    <?php echo $tab['year']; ?>年 <?php echo $tab['month']; ?>月
    </td>
  </tr>
  <tr>
    <td width="30" height="30" align="center" bgcolor="#EEE">日</td>
    <td width="30" align="center" bgcolor="#EEE">一</td>
    <td width="30" align="center" bgcolor="#EEE">二</td>
    <td width="30" align="center" bgcolor="#EEE">三</td>
    <td width="30" align="center" bgcolor="#EEE">四</td>
    <td width="30" align="center" bgcolor="#EEE">五</td>
    <td width="30" align="center" bgcolor="#EEE">六</td>
  </tr>
  <?php foreach($tab['list'] as $rows){ ?>
  <tr>
    <?php foreach($rows as $key => $value){ ?>
    <td<?php if($key==0){ echo ' height="30"'; } ?> align="center">
    <?php if($value['status']){echo $value['date'];} else {echo '&nbsp;';} ?>
    </td>
    <?php } ?>
  </tr>
  <?php } ?>
</table>
</body>
</html>

运行结果:

例二、

将上面例一中Controller文件的代码,

$data = $calendarObj->render();

更改为:

$data = $calendarObj->setYear(2019)->setMonth(10)->render();

其它代码不变,调试运行下。看结果如何? 如果查看下$data的数组结构,就知道数组结构如下:

Array
(
    [year] => 2019
    [month] => 10
    [list] => Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [date] =>
                            [status] =>
                        )

                    [1] => Array
                        (
                            [date] =>
                            [status] =>
                        )

                    [2] => Array
                        (
                            [date] => 1
                            [status] => 1
                        )

                    [3] => Array
                        (
                            [date] => 2
                            [status] => 1
                        )

                    [4] => Array
                        (
                            [date] => 3
                            [status] => 1
                        )

                    [5] => Array
                        (
                            [date] => 4
                            [status] => 1
                        )

                    [6] => Array
                        (
                            [date] => 5
                            [status] => 1
                        )

                )

            [1] => Array
                (
                    [0] => Array
                        (
                            [date] => 6
                            [status] => 1
                        )

                    [1] => Array
                        (
                            [date] => 7
                            [status] => 1
                        )

                    [2] => Array
                        (
                            [date] => 8
                            [status] => 1
                        )

                    [3] => Array
                        (
                            [date] => 9
                            [status] => 1
                        )

                    [4] => Array
                        (
                            [date] => 10
                            [status] => 1
                        )

                    [5] => Array
                        (
                            [date] => 11
                            [status] => 1
                        )

                    [6] => Array
                        (
                            [date] => 12
                            [status] => 1
                        )

                )

            [2] => Array
                (
                    [0] => Array
                        (
                            [date] => 13
                            [status] => 1
                        )

                    [1] => Array
                        (
                            [date] => 14
                            [status] => 1
                        )

                    [2] => Array
                        (
                            [date] => 15
                            [status] => 1
                        )

                    [3] => Array
                        (
                            [date] => 16
                            [status] => 1
                        )

                    [4] => Array
                        (
                            [date] => 17
                            [status] => 1
                        )

                    [5] => Array
                        (
                            [date] => 18
                            [status] => 1
                        )

                    [6] => Array
                        (
                            [date] => 19
                            [status] => 1
                        )

                )

            [3] => Array
                (
                    [0] => Array
                        (
                            [date] => 20
                            [status] => 1
                        )

                    [1] => Array
                        (
                            [date] => 21
                            [status] => 1
                        )

                    [2] => Array
                        (
                            [date] => 22
                            [status] => 1
                        )

                    [3] => Array
                        (
                            [date] => 23
                            [status] => 1
                        )

                    [4] => Array
                        (
                            [date] => 24
                            [status] => 1
                        )

                    [5] => Array
                        (
                            [date] => 25
                            [status] => 1
                        )

                    [6] => Array
                        (
                            [date] => 26
                            [status] => 1
                        )

                )

            [4] => Array
                (
                    [0] => Array
                        (
                            [date] => 27
                            [status] => 1
                        )

                    [1] => Array
                        (
                            [date] => 28
                            [status] => 1
                        )

                    [2] => Array
                        (
                            [date] => 29
                            [status] => 1
                        )

                    [3] => Array
                        (
                            [date] => 30
                            [status] => 1
                        )

                    [4] => Array
                        (
                            [date] => 31
                            [status] => 1
                        )

                    [5] => Array
                        (
                            [date] =>
                            [status] =>
                        )

                    [6] => Array
                        (
                            [date] =>
                            [status] =>
                        )

                )

        )

)

注:对上面数组中list字段中的status为当前日期的状态。true(或1)时,为当前日期可以显示,today为当前日期就是今天,used则为当前日期已占用。list数据为多维数组。其中1,2, 3, 4为行数据(相当于表格标签中的tr)。每个行数据中包含7个元素(数组),这7个元素相当于表格标签中的td。7个元素也就是7天(从星期天开始起,至星期六)。