php实现的日历程序


Posted in PHP onJune 18, 2015

本文实例讲述了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>";
}
?>

运行效果如下:

php实现的日历程序

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
php数据库连接
Oct 09 PHP
php 变量未定义等错误的解决方法
Jan 12 PHP
PHP文件读写操作之文件读取方法详解
Jan 13 PHP
CURL状态码列表(详细)
Jun 27 PHP
两种php给图片加水印的实现代码
Apr 18 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
Mar 17 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
Oct 08 PHP
PHP利用Socket获取网站的SSL证书与公钥
Jun 18 PHP
php实现生成code128条形码的方法详解
Jul 19 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
Dec 21 PHP
PHP实现读取文件夹及批量重命名文件操作示例
Apr 15 PHP
php实现根据身份证获取精准年龄
Feb 26 PHP
php实现的验证码文件类实例
Jun 18 #PHP
php实现的简单检验登陆类
Jun 18 #PHP
php实现比较全的数据库操作类
Jun 18 #PHP
php文件操作相关类实例
Jun 18 #PHP
php身份证号码检查类实例
Jun 18 #PHP
PHP批量生成图片缩略图的方法
Jun 18 #PHP
基于php的CMS中展示文章类实例分析
Jun 18 #PHP
You might like
php中文字符截取防乱码
2008/03/28 PHP
Zend Framework连接Mysql数据库实例分析
2016/03/19 PHP
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
2016/06/22 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
2016/09/01 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
2016/11/30 Javascript
vue2.0 子组件改变props值,并向父组件传值的方法
2018/03/01 Javascript
写一个移动端惯性滑动&amp;回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
layer.open组件获取弹出层页面变量、函数的实例
2019/09/25 Javascript
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
python中的多线程实例教程
2014/08/27 Python
使用Python的PIL模块来进行图片对比
2016/02/18 Python
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
浅谈Python 集合(set)类型的操作——并交差
2016/06/30 Python
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
python3爬取淘宝信息代码分析
2018/02/10 Python
Python get获取页面cookie代码实例
2018/09/12 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
Python版名片管理系统
2018/11/30 Python
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
Topman美国官网:英国著名的国际平价时尚男装品牌
2017/12/22 全球购物
美国市场上最实惠的送餐服务:Dinnerly
2018/03/18 全球购物
国际经济贸易专业推荐信
2013/11/06 职场文书
就业意向书
2014/07/29 职场文书
设备技术员岗位职责
2015/04/11 职场文书
婚礼领导致辞大全
2015/07/28 职场文书
2016猴年春节慰问信
2015/11/30 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书
教你利用Selenium+python自动化来解决pip使用异常
2021/05/20 Python
开机音效回归! Windows 11重新引入开机铃声
2021/11/21 数码科技
MySQL七大JOIN的具体使用
2022/02/28 MySQL
零基础学java之带参数以及返回值的方法
2022/04/10 Java/Android
详解Python中的for循环
2022/04/30 Python
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers