实现一个PHP万年历,先上图:

PHP实现万年历

      总体实现逻辑是:先把某月的天数展示在table里面。然后计算该月第一天对应的是周几。最后分别计算上下月对应的年数与天数,实现上下月切换。下面将一步一步具体实现:

      第一步:利用PHP的日期函数获取当前年月日:

  •  获取当前年 $y = date("Y");
  • 获取当前月 $y = date("m");
  • 获取当前是多少号 $d = date("d");
  • 获取该月有多少天 $maxday = date("t"); 
  • 获取本月第一天对应的星期 date("w",strtotime("{$y}-{$m}-1")); 
  • 接下来是界面代码,代码如下图

  • PHP实现万年历
  • 以上第一个for循环用于循环输出最大天数,1-$week表示对应的本月第一天是星期几。第二个for循环,循环输出每一行的日期。其中$i == $d表示判断是否为本月本号的日期,如果是则字体为红色标注。

     第二步,实现上月和下一月切换:

  • 分别定义变量 $prey,$preMonth,$nexty,$nextMonth表示点击上一月和下一月对应的年月
  • 给上下年月赋值,并且为a标签添加链接 代码如下图

PHP实现万年历

     第三步:初始化的年月日,进行判断。判断是否为点击的上一月或者下一月。如果是这取该年月。不是者取当前。

  • $y = isset($_GET["y"])?$_GET["y"]:date("Y");取年
  • $m = isset($_GET["m"])?$_GET["m"]:date("m");取月
  • if ($y == date("Y") && $m == date("m")) {
            $d = date("d");
        }判断是否为当前日期。具体代码如下图

PHP实现万年历

到此万年历完成。代码下载链接 https://pan.baidu.com/s/1o9c0D9w






相关文章: