• 技术文章 >php教程 >PHP源码

    php实现的日历程序_php技巧

    PHP中文网PHP中文网2016-05-25 17:15:30原创522
    这篇文章主要介绍了php实现的日历程序,可实现基本的日历显示与实时查询功能,非常具有实用价值,需要的朋友可以参考下

    本文实例讲述了php实现的日历程序。分享给大家供大家参考。具体如下:

    <?php
    ////判断$Year和$Month是否为空,如果为空就获取系统当前日期,否则用$_GET获取
    $Year = empty($_GET['Year']) ? date("Y"): $_GET["Year"];
    $Month = empty($_GET['Month']) ? date("m"): $_GET["Month"];
    ////获取当前日期////
    $Today = date("Ymj");
    ////初始化日期数组////
    $Maxday = array("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20",
    "21","22","23","24","25","26","27","28","29","30","31");
    $Maxday_count = count($Maxday);
    ////初始化星期数组////
    $Weekday = array("<font color='red'>Sun</font>","Mon","Tue","Wed","Thu","Fri","<font color='red'>Sat</font>");
    $Weekday_count = count($Weekday);
    $daynum = 0;
    $space = "<td> </td>";
    $col = 0;
    ////打印表格头部////
    ?>
    <form action="calendar.php" method="post" name="linked">
    <table><tr><td colspan=3 align=center><a href="?Year=<?php if($Year-1 > 1900)echo $Year-1;else echo $Year;?>&Month=<?php echo $Month?>" onClick="javascript:document.linked.submit();" name="Year"><<</a> <?php echo $Year?> <a href="?Year=<?php if($Year+1 <2999) echo $Year+1;else echo $Year;?>&Month=<?php echo $Month?>" onClick="javascript:document.linked.submit();" name="Year">>></a></td>
    <td> </td><td colspan=3 align=center><a href="?Year=<?php echo $Year?>&Month=<?php if($Month-1 >0) if($Month-1 < 10)echo "0".($Month-1); else echo $Month-1; else echo $Month;?>" onClick="javascript:document.linked.submit();" name="Month"><<</a> <?php echo $Month;?> <a href="?Year=<?php echo $Year?>&Month=<?php if($Month+1 <13) if($Month+1 <10) echo "0".($Month+1);else echo ($Month+1); else echo $Month;?>" onClick="javascript:document.linked.submit();" name="Month">>></a></td></tr><tr><td colspan="8"></td></tr><tr>
    <?php
    ////打印星期列表////
    while(list(,$Weekvalue) = each($Weekday))
     echo "<td align=center> ".$Weekvalue." </td>";
    echo "</tr>";
    ////打印日期列表////
    //当月份为4,6,9,11的时候,从数组末尾删除一个值,也就是删除31这个值.
    if($Month == 4 or $Month == 6 or $Month == 9 or $Month == 11)
    {
     array_pop($Maxday);
     $Maxday_count--;
    }
    //先判断月份是否为2月,如果是的话再判断年份是否为闰年,如果是的话就从数组尾部移除2个值,否则就移除3个值.
    if($Month == 2)
    {
     if($Year % 4 == 0)
     {
     array_pop($Maxday);
     array_pop($Maxday);
     $Maxday_count-=2;
     }
     else
     {
     array_pop($Maxday);
     array_pop($Maxday);
     array_pop($Maxday);
     $Maxday_count-=3;
     }
    }
    ////打印日期////
    while($daynum < $Maxday_count)
    {
    echo "<tr>";
     while(list($colnum,$Dayvalue) = each($Maxday))
     {
      //判断当前日期为一星期中的哪一天
      $DayWeek = date("w",strtotime($Year."-".$Month."-".$Dayvalue));
      //当当前日期处于第1个,也就是每个月的第1天的时候,在它前面补上相应的空格子
      if($Dayvalue == 1)
       for($i=0;$i<$DayWeek;$i++)
       echo $space;//打印每个月空出的几个格子
      $daynum++;
      //当打印日期的时候与当前日期字符串进行比较,如果相等就将字体标为红色.
      if($Year.$Month.$Dayvalue == $Today)
      {
       $u1 = "<b><u>";
       $u2 = "</b></u>";
      }
      else
      {
       $u1 = "";
       $u2 = "";
      }
      if($DayWeek == 0 or $DayWeek == 6)
       $color = "red";
      else
       $color = "black";
      echo "<td align=center><font color=".$color."> ".$u1.$Dayvalue.$u2." </font></td>";
      //用本周第几天这个值加1,如果是7的倍数就换行退出此轮循环(换行打印)
      if(($DayWeek+1) % 7 == 0)
      {
       $col++;
       break;
      }
     }
    echo "</tr>";
    }
    ?>

    运行效果如下:

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 日历程序
    上一篇:将PHP数组转成XML 下一篇:boolean true/false and the strings "true"/"false".
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• PHP二维数组排序问题详解(数组键值排序)• php最简单获取数组最后无素值• 根据访客所在城市ip地址自动跳转到分站的php代码• php 二级联动菜单• php 广告点击统计代码
    1/1

    PHP中文网