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 ' ';} ?>
- </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天(从星期天开始起,至星期六)。
原文: http://www.doitphp.com/index/documentation/?articleid=55