php 安装calendar扩展,如何安装php calendar 模块

PHP提供了date()函数,该函数提供了丰富的日期处理功能。现在需要获得的数据有两个,第一个是当月的总天数;第二个是该月的第一天所在星期中的第几天,数字表示0(表示星期天)到6(表示星期六)。通过date()函数可以很容易获得上面的数据。

1. <?php

2.//date()函数的基本用法

3. $year = date('Y'); //获得年份,例如2006

4. $month = date('n'); //获得月份,例如04

5. $day = date('j'); //获得日期,例如3

6. ?>

通过mktime()函数和date()函数获得当月的总天数。 1.//获得当月的总天数

2. $daysInMonth = date("t",mktime(0,0,0,$month,1,$year));

同样是组合使用mktime()函数和date()函数,获得该月的第一天所在星期中的第几天,数字表示0(表示星期天)到6(表示星期六)。 1.//获得每个月的第一天,例如4

2. $firstDay = date("w", mktime(0,0,0,$month,1,$year));

现在重新来观察下这个日历表格,我们发现,表格中的值是从1到x(当月的总天数)。我们可以形象地通过一个坐标来表示每一个位置(x,y),表格的起始位置是(0,0),结束位置是(5,4),当月第一天的起始位置是(0,3)。现在来创建一个二维数组来存储对应的日期。

(1)需要获得表格的数目。

1.//计算数组中的日历表格数

2. $tempDays = $firstDay + $daysInMonth;

(2)需要算出该月一共有几周(即表格的行数)。 1.//获得表格行数

2. $weeksInMonth = ceil($tempDays/7);

(3)在获得行数的变量之后,创建一个二维数组用来存放日期信息,代码如下: 1. <?php

2. for($j=0;$j

3.{

4. for($i=0;$i<7

5. ;$i++)

6. {

7. $counter ++;

8. $week [$j] [$i] = $counter;

9. }

10.}

11. ?>

(4)细心的读者可能发现,上面的代码其实是一个雏型,因为它处理出来的数据并没有过滤那些空白的表格单元。下面来继续改造下这段代码,加入过滤和构造的部分。改造后的代码如下: 1. <?php

2.//创建日期二维数组

3. for($j = 0; $j < $weeksInMonth; $j ++) {

4. for($i = 0; $i < 7; $i ++) {

5. $counter ++;

6. $week [$j] [$i] = $counter;

7. //日期偏移量

8. $week [$j] [$i] -= $firstDay;

9. if (($week [$j] [$i] < 1) || ($week [$j] [$i] > $daysInMonth)) {

10. $week [$j] [$i] = "";

11. }

12. }

13.}

14. ?>

(5)在获得正确的二维数组之后,就可以通过foreach()函数将存储的日期信息遍历出来,同时插入HTML标签创建日期,代码如下: 1. <?php

2. $year = date ( 'Y' ); //获得年份, 例如: 2006

3. $month = date ( 'n' ); //获得月份, 例如: 04

4. $day = date ( 'j' ); //获得日期, 例如: 3

5. $firstDay = date ( "w", mktime ( 0, 0, 0, $month, 1, $year ) );

6. //获得当月第一天

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值