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 相关文章推荐
操作Oracle的php类
Oct 09 PHP
PHP抽象类 介绍
Jun 13 PHP
360通用php防护代码(使用操作详解)
Jun 18 PHP
解析如何在PHP下载文件名中解决乱码的问题
Jun 20 PHP
浅析PKI加密解密 OpenSSL
Jul 01 PHP
PHP echo,print,printf,sprintf函数之间的区别与用法详解
Nov 27 PHP
如何让CI框架支持service层
Oct 29 PHP
抛弃 PHP 代价太高
Apr 26 PHP
php函数传值的引用传递注意事项分析
Jun 25 PHP
PHP ADODB实现事务处理功能示例
May 25 PHP
php图片裁剪函数
Oct 31 PHP
PHP常见过waf webshell以及最简单的检测方法
May 21 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实现把数字ID转字母ID
2013/08/12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十一)
2014/06/25 PHP
PHP大批量插入数据库的3种方法和速度对比
2014/07/08 PHP
Yii多表联合查询操作详解
2016/06/02 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
常用js脚本
2006/12/03 Javascript
javascript 基础篇2 数据类型,语句,函数
2012/03/14 Javascript
javascript 文件的同步加载与异步加载实现原理
2012/12/13 Javascript
javascript截取字符串(通过substring实现并支持中英文混合)
2013/06/24 Javascript
Javascript添加监听与删除监听用法详解
2014/12/19 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
JS从一组数据中找到指定的单条数据的方法
2016/06/02 Javascript
自己封装的一个简单的倒计时功能实例
2016/11/23 Javascript
javascript中BOM基础知识总结
2017/02/14 Javascript
JS和JQuery实现雪花飘落效果
2017/11/30 jQuery
js replace 全局替换的操作方法
2018/06/12 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
2018/11/21 Javascript
用 js 写一个 js 解释器过程详解
2019/08/02 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
2019/09/02 Javascript
详解JavaScript自定义函数
2020/07/29 Javascript
python安装oracle扩展及数据库连接方法
2017/02/21 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
2017/03/12 Python
PyQt5每天必学之滑块控件QSlider
2018/04/20 Python
python3 实现的对象与json相互转换操作示例
2019/08/17 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
豪华床上用品 :Jennifer Adams
2019/09/15 全球购物
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
简历中自我评价范文3则
2013/12/14 职场文书
护理专业学生职业生涯规划范文
2014/03/11 职场文书
门店业绩提升方案
2014/06/08 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
网络文明传播志愿者活动方案
2014/08/20 职场文书
教师民族团结演讲稿
2014/08/27 职场文书
永不妥协观后感
2015/06/10 职场文书
《藏戏》教学反思
2016/02/23 职场文书
MYSQL优化之数据表碎片整理详解
2022/04/03 MySQL