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 相关文章推荐
ThinkPHP与PHPExcel冲突解决方法
Aug 08 PHP
基于php使用memcache存储session的详解
Jun 25 PHP
实例讲解PHP面向对象之多态
Aug 20 PHP
php字符串分割函数用法实例
Mar 17 PHP
php使用数组填充下拉列表框的方法
Mar 31 PHP
Yii2.0中的COOKIE和SESSION用法
Aug 12 PHP
thinkPHP5.0框架简单配置作用域的方法
Mar 17 PHP
thinkphp自定义权限管理之名称判断方法
Apr 01 PHP
PHP下载远程图片的几种方法总结
Apr 07 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
May 23 PHP
PHP实现的杨辉三角求解算法分析
Mar 11 PHP
浅谈laravel orm 中的一对多关系 hasMany
Oct 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 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
php中根据变量的类型 选择echo或dump
2012/07/05 PHP
php简单实现多字节字符串翻转的方法
2015/03/31 PHP
PHP数组操作类实例
2015/07/11 PHP
PHP简单实现循环链表功能示例
2017/11/10 PHP
Jquery如何实现点击时高亮显示代码
2014/01/22 Javascript
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
基于jQuery.validate及Bootstrap的tooltip开发气泡样式的表单校验组件思路详解
2016/07/18 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
怎样判断jQuery当前元素是隐藏还是显示
2016/11/23 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
2017/02/19 Javascript
vue 中自定义指令改变data中的值
2017/06/02 Javascript
layer实现关闭弹出层刷新父界面功能详解
2017/11/15 Javascript
浅谈webpack devtool里的7种SourceMap模式
2019/01/14 Javascript
vue实现微信分享链接添加动态参数的方法
2019/04/29 Javascript
关于layui 弹出层一闪而过就消失的解决方法
2019/09/09 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
React实现轮播效果
2020/08/25 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
[37:03]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第二场 12.16
2020/12/18 DOTA
python正则表达式re模块详细介绍
2014/05/29 Python
Python 专题四 文件基础知识
2017/03/20 Python
Python操作Sql Server 2008数据库的方法详解
2018/05/17 Python
对python实现模板生成脚本的方法详解
2019/01/30 Python
python实现人工蜂群算法
2020/09/18 Python
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
NFL官方在线商店:NFLShop
2020/07/29 全球购物
市场营销专业个人自荐信格式
2013/09/21 职场文书
高中毕业自我鉴定范文
2013/10/02 职场文书
商业用房租赁协议书
2014/10/13 职场文书
党员个人年度总结
2015/02/14 职场文书
大学生简历自我评价2015
2015/03/03 职场文书
2019公司借款合同范本2篇!
2019/07/24 职场文书
uni-app 微信小程序授权登录的实现步骤
2022/02/18 Javascript