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 相关文章推荐
第二节 对象模型 [2]
Oct 09 PHP
一个多文件上传的例子(原创)
Oct 09 PHP
PHP中上传大体积文件时需要的设置
Oct 09 PHP
一个PHP分页类的代码
May 18 PHP
mac下使用brew配置环境的步骤分享
May 23 PHP
PHP面向对象学习笔记之一 基础概念
Oct 06 PHP
基于PHP文件操作的详细诠释
Jun 21 PHP
php计算整个mysql数据库大小的方法
Jun 19 PHP
PHP接收json 并将接收数据插入数据库的实现代码
Dec 01 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
Laravel框架模板继承操作示例
Jun 11 PHP
PHP操作XML中XPath的应用示例
Jul 04 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
PHP网站基础优化方法小结
2008/09/29 PHP
利用PHP函数计算中英文字符串长度的方法
2014/11/11 PHP
thinkphp模板的包含与渲染实例分析
2014/11/26 PHP
php文件夹的创建与删除方法
2015/01/24 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
2015/12/02 PHP
改版了网上的一个js操作userdata
2007/04/27 Javascript
Node.js 异步编程之 Callback介绍(一)
2015/03/30 Javascript
js实现仿MSN带关闭功能的右下角弹窗代码
2015/09/04 Javascript
VUEJS实战之修复错误并且美化时间(2)
2016/06/13 Javascript
JSON与String互转的实现方法(Javascript)
2016/09/27 Javascript
javascript self对象使用详解
2016/10/18 Javascript
微信小程序 支付简单实例及注意事项
2017/01/06 Javascript
JavaScript之Map和Set_动力节点Java学院整理
2017/06/29 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
2018/06/10 Javascript
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
vue路由切换之淡入淡出的简单实现
2019/10/31 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
2019/12/17 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
2020/03/25 Javascript
js实现随机点名功能
2020/12/23 Javascript
[01:04:48]VGJ.S vs TNC Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python设置Socket代理及实现远程摄像头控制的例子
2015/11/13 Python
Python实现矩阵加法和乘法的方法分析
2017/12/19 Python
详解python数据结构和算法
2019/04/18 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
Python日志syslog使用原理详解
2020/02/18 Python
Python编程快速上手——强口令检测算法案例分析
2020/02/29 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
CSS3实现菜单悬停效果
2020/11/17 HTML / CSS
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
Deux par Deux官方网站:设计师童装
2020/01/03 全球购物
传统软件工程与面向对象的软件工程有什么区别
2012/05/31 面试题
大学生职业生涯规划书
2014/03/14 职场文书