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 相关文章推荐
phpMyAdmin下载、安装和使用入门教程
May 31 PHP
关于php内存不够用的快速解决方法
Oct 26 PHP
php对数组排序的简单实例
Dec 25 PHP
PHP实现微信公众平台音乐点播
Mar 20 PHP
php判断页面是否是微信打开的示例(微信打开网页)
Apr 25 PHP
PHP写日志的实现方法
Nov 05 PHP
php常见的魔术方法详解
Dec 25 PHP
php使用fputcsv()函数csv文件读写数据的方法
Jan 06 PHP
通过PHP简单实例介绍文件上传
Dec 16 PHP
Nginx下ThinkPHP5的配置方法详解
Aug 01 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 09 PHP
详细解读php的命名空间(二)
Feb 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数据库操作面向对象的优点
2006/10/09 PHP
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/29 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
2014/05/15 PHP
PHP6连接SQLServer2005的三部曲
2016/04/15 PHP
php微信支付之公众号支付功能
2018/05/30 PHP
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
JS控制表格实现一条光线流动分割行的方法
2015/03/09 Javascript
javascript中createElement的两种创建方式
2015/05/14 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
jquery+css实现简单的图片轮播效果
2017/08/07 jQuery
vue的状态管理模式vuex
2017/11/30 Javascript
Vue子组件向父组件通信与父组件调用子组件中的方法
2018/06/22 Javascript
微信小程序视图控件与bindtap之间的问题的解决
2019/04/08 Javascript
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
2019/05/09 Javascript
在JavaScript中如何访问暂未存在的嵌套对象
2019/06/18 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
jquery实现简单每周轮换的日历
2020/09/10 jQuery
[39:53]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.19
2020/11/19 DOTA
python计算最小优先级队列代码分享
2013/12/18 Python
Python写的英文字符大小写转换代码示例
2015/03/06 Python
python面向对象入门教程之从代码复用开始(一)
2018/12/11 Python
Python中的集合介绍
2019/01/28 Python
决策树剪枝算法的python实现方法详解
2019/09/18 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
美国市场上最实惠的送餐服务:Dinnerly
2018/03/18 全球购物
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
大学毕业生最详细的自我评价分享
2013/11/18 职场文书
启动仪式策划方案
2014/06/14 职场文书
小区门卫的岗位职责
2014/09/26 职场文书
党政领导班子四风问题对照检查材料思想汇报
2014/10/02 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
违纪检讨书范文
2015/01/27 职场文书
考博导师推荐信范文
2015/03/27 职场文书
学生检讨书怎么写
2015/05/07 职场文书