php简单日历函数


Posted in PHP onOctober 28, 2015

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

<?php 
/* 
* php 输出日历程序 
*/ 
header("Content-type: text/html;charset=utf-8"); 
$year=(!isset($_GET['year'])||$_GET['year']=="")?date("Y"):$_GET['year']; 
$month=(!isset($_GET['month'])||$_GET['month']=="")?date("n"):$_GET['month']; 
$curUrl=$_SERVER['PHP_SELF']; 
 
if($year<1971){ 
  echo "出错!"; 
  echo "<BR>"; 
  echo "<a href=",$curUrl,">Back</a>"; 
  exit(); 
} 
?> 
<table width="200" border="1" cellspacing="0" cellpadding="0" bordercolor="#E7E7E7" style="font-size:12px;" align="center"> 
<tr align="center"><td colspan="2"> 
<?php 
//<-------当月份超出1至12时的处理;开始-------> 
if($month<1){ 
  $month=12; 
  $year-=1; 
} 
if($month>12){ 
  $month=1; 
  $year+=1; 
} 
//<-------当月份超出1至12时的处理;结束-------> 
//<---------上一年,下一年,上月,下月的连接处理及输出;开始---------> 
echo "<a href=",$curUrl,"?year=".($year-1)."&month=".$month."><<</a>年<a href=",$curUrl,"?year=".($year+1)."&month=".$month.">>></a>"; 
?> 
</td><td colspan="3"><?php echo $year."年".$month."月";?> 
</td><td colspan="2"> 
<?php 
echo "<a href=",$curUrl,"?month=".($month-1)."&year=".$year."><<</a>月<a href=",$curUrl,"?month=".($month+1)."&year=".$year.">>></a>"; 
//<--------上一年,下一年,上月,下月的连接处理及输出;结束---------> 
?></td></tr> 
<tr align=center><td><font color="red">日</font></td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr><tr> 
<?php 
$d=date("d"); 
$FirstDay=date("w",mktime(0,0,0,$month,1,$year));//取得任何一个月的一号是星期几,用于计算一号是由表格的第几格开始 
$bgtoday=date("d"); 
function font_color($month,$today,$year){//用于计算星期天的字体颜色 
  $sunday=date("w",mktime(0,0,0,$month,$today,$year)); 
  if($sunday=="0"){ 
    $FontColor="red"; 
  }else{ 
    $FontColor="black"; 
  } 
  return $FontColor; 
} 
function bgcolor($month,$bgtoday,$today_i,$year){//用于计算当日的背景颜色 
  $show_today=date("d",mktime(0,0,0,$month,$today_i,$year)); 
  $sys_today=date("d",mktime(0,0,0,$month,$bgtoday,$year)); 
  if($show_today==$sys_today){ 
  $bgcolor="bgcolor=#6699FF"; 
  }else{ 
  $bgcolor=""; 
  } 
  return $bgcolor; 
} 
function font_style($month,$today,$year){//用于计算星期天的字体风格 
  $sunday=date("w",mktime(0,0,0,$month,$today,$year)); 
  if($sunday=="0"){ 
    $FontStyle="<strong>"; 
  }else{ 
    $FontStyle=""; 
  } 
  return $FontStyle; 
} 
for($i=0;$i<=$FirstDay;$i++){//此for用于输出某个月的一号位置 
  for($i;$i<$FirstDay;$i++){ 
    echo "<td align=center> </td>\n"; 
  } 
  if($i==$FirstDay){ 
    echo "<td align=center ".bgcolor($month,$bgtoday,1,$year)."><font color=".font_color($month,1,$year).">".font_style($month,1,$year)."1</font></td>\n"; 
    if($FirstDay==6){//判断1号是否星期六 
      echo "</tr>"; 
    } 
  } 
} 
$countMonth=date("t",mktime(0,0,0,$month,1,$year));//某月的总天数 
for($i=2;$i<=$countMonth;$i++){//输出由1号定位,随后2号直至月尾的所有号数 
  echo "<td align=center ".bgcolor($month,$bgtoday,$i,$year)."><font color=".font_color($month,$i,$year).">".font_style($month,$i,$year)."$i</font></td>\n"; 
  if(date("w",mktime(0,0,0,$month,$i,$year))==6){//判断该日是否星期六 
    echo "</tr>\n"; 
  } 
} 
?> 
</table>

 php输出的日历效果如下图:

php简单日历函数

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

PHP 相关文章推荐
ExtJS与PHP、MySQL实现存储的方法
Apr 02 PHP
基于php上传图片重命名的6种解决方法的详细介绍
Apr 28 PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
Jun 21 PHP
php浏览历史记录的方法
Mar 10 PHP
PHP随机生成信用卡卡号的方法
Mar 23 PHP
初识PHP中的Swoole
Apr 05 PHP
Joomla框架实现字符串截取的方法示例
Jul 18 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
Sep 28 PHP
PHP实现的MD5结合RSA签名算法实例
Oct 07 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
Feb 25 PHP
PHP Pipeline 实现中间件的示例代码
Apr 26 PHP
PHP autoload使用方法及步骤详解
Sep 05 PHP
php将数组存储为文本文件方法汇总
Oct 28 #PHP
php如何获取文件的扩展名
Oct 28 #PHP
php检查页面是否被百度收录
Oct 28 #PHP
PHP加密解密函数详解
Oct 28 #PHP
php实现阳历阴历互转的方法
Oct 28 #PHP
PHP框架Laravel学习心得体会
Oct 28 #PHP
php抓取并保存网站图片的实现代码
Oct 28 #PHP
You might like
PHP5中虚函数的实现方法分享
2011/04/20 PHP
一个漂亮的php验证码类(分享)
2013/08/06 PHP
使用PHP json_decode可能遇到的坑与解决方法
2017/08/03 PHP
调用js时ie6和ie7,ff的区别
2009/08/19 Javascript
IE下js调试工具Companion.JS
2010/10/15 Javascript
js 弹出框只弹一次(二次修改之后的)
2013/11/26 Javascript
文本框文本自动补全效果示例分享
2014/01/19 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
深入理解jQuery之事件移除
2016/06/02 Javascript
深入理解Javascript中的自执行匿名函数
2016/06/03 Javascript
详解webpack 多页面/入口支持&amp;公共组件单独打包
2017/06/29 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
浅谈React高阶组件
2018/03/28 Javascript
Vue2.0中三种常用传值方式(父传子、子传父、非父子组件传值)
2018/08/16 Javascript
移动端如何用下拉刷新的方式实现上拉加载
2018/12/10 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
python中Flask框架简单入门实例
2015/03/21 Python
在Python中操作字符串之startswith()方法的使用
2015/05/20 Python
jupyter安装小结
2016/03/13 Python
朴素贝叶斯Python实例及解析
2018/11/19 Python
Python写一个基于MD5的文件监听程序
2019/03/11 Python
python学生管理系统学习笔记
2019/03/19 Python
4行Python代码生成图像验证码(2种)
2020/04/07 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
创联软件面试题笔试题
2012/10/07 面试题
获奖的大学生创业计划书
2014/01/05 职场文书
顶撞领导检讨书
2014/01/29 职场文书
追悼会主持词
2014/03/20 职场文书
机械机修工岗位职责
2014/08/03 职场文书
厨师长岗位职责范本
2014/08/25 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
python自动计算图像数据集的RGB均值
2021/06/18 Python
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技