6.21 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('calendar', $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 $calendar['year']; ?>年 <?php echo $calendar['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($calendar['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 ' ';} ?>
</td>
<?php } ?>
</tr>
<?php } ?>
</table>
</body>
</html>

运行结果:

例二、打印日历数组

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

$data = $calendarObj->render();

更改为:

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

其它代码不变,调试运行下。看结果如何? 如果查看下$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] =>
)
)
)
)