PHP生成月历代码


Posted in PHP onJune 14, 2007

<?php
/*  
Function Written by Nelson Neoh @3/2004.  
For those who wants to utilize this code, please do not remove this remark.  
If you have done any enhancement to this code, please post the copy at http://www.dev-club.com PHP board.  Thank you.

Function usage: calendar(Month,Year)
*/

function calendar($MM,$YYYY){
    if($MM=="") $MM = date("m");
    if($YYYY=="") $YYYY = date("Y");
    if(checkdate($MM,1,$YYYY)){
        $stringDate = strftime("%d %b %Y",mktime (0,0,0,$MM,1,$YYYY));
        $days = strftime("%d",mktime (0,0,0,$MM+1,0,$YYYY));
        $firstDay = strftime("%w",mktime (0,0,0,$MM,1,$YYYY));
        $lastDay = strftime("%w",mktime (0,0,0,$MM,$days,$YYYY));
        $printDays = $days;
        $preMonth = strftime("%m",mktime (0,0,0,$MM-1,1,$YYYY));
        $preYear = strftime("%Y",mktime (0,0,0,$MM-1,1,$YYYY));
        $nextMonth = strftime("%m",mktime (0,0,0,$MM+1,1,$YYYY));
        $nextYear = strftime("%Y",mktime (0,0,0,$MM+1,1,$YYYY));
        print("<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\">");
        print("<tr><th valign=\"top\"><a href=\"".$_SERVER['PHP_SELF']."?NB=".$_GET["NB"]."&MM=".$preMonth."&YY=".$preYear."\">P</a></th>");
        print("<th colspan=\"5\" valign=\"top\">".strftime("%b %Y",mktime (0,0,0,$MM,1,$YYYY))."</th>");
        print("<th valign=\"top\"><a href=\"".$_SERVER['PHP_SELF']."?NB=".$_GET["NB"]."&MM=".$nextMonth."&YY=".$nextYear."\">N</a></th></tr>");
        print("<tr style=\"font-family: Verdana; font-size:x-small\">");
        print("<th>Sun</th><th>Mon</th><th>Tue</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th></tr>");

        $currentDays = 1;
        for($a=1;$a<=5;$a++){
            print("<tr align=\"left\" valign=\"top\" style=\"font-family: Verdana; font-size:x-small\">");
            $diffDays = $firstDay-$lastDay;
            if($firstDay>$lastDay && $currentDays ==1 && ($diffDays<>1)){
                for($x=$lastDay;$x>=0;$x--){
                    $printDays = $days-$x;
                    print("<td>$printDays</td>");
                }
                for($z=1;$z<$firstDay-$lastDay;$z++){
                    print("<td> </td>");
                }
                for($y=$firstDay;$y<7;$y++){
                    print("<td>$currentDays</td>");
                    $currentDays++;
                }
            } elseif($firstDay!=0 && $currentDays==1){
                for($z=1;$z<=$firstDay;$z++){
                    print("<td> </td>");
                }
                for($y=$firstDay;$y<7;$y++){
                    print("<td>$currentDays</td>");
                    $currentDays++;
                }
            } else {
                for($u=1;$u<=7 && $currentDays<=$days;$u++){
                    print("<td>$currentDays</td>");
                    $currentDays++;
                }
            }
            print("</tr>");
        }
        print("</table>");
    }
}
?>

PHP 相关文章推荐
xml+php动态载入与分页
Oct 09 PHP
PHP运行模式的深入理解
Jun 03 PHP
hadoop常见错误以及处理方法详解
Jun 19 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
Mar 13 PHP
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
Jun 21 PHP
CI框架中cookie的操作方法分析
Dec 12 PHP
php 在线导入mysql大数据程序
Jun 11 PHP
php session 写入数据库
Feb 13 PHP
PHP7.1新功能之Nullable Type用法分析
Sep 26 PHP
PHP提取字符串中的手机号正则表达式怎么写
Jul 17 PHP
PHP+ajax实现二级联动菜单功能示例
Aug 10 PHP
tp5使用layui实现多个图片上传(带附件选择)的方法实例
Nov 17 PHP
用PHP实现图象锐化代码
Jun 14 #PHP
PHP静态新闻列表自动生成代码
Jun 14 #PHP
discuz安全提问算法
Jun 06 #PHP
PHP5.2下chunk_split()函数整数溢出漏洞 分析
Jun 06 #PHP
phpMyAdmin下载、安装和使用入门教程
May 31 #PHP
测试您的 PHP 水平的题目
May 30 #PHP
Discuz板块横排显示图片的实现方法
May 28 #PHP
You might like
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
特转载一高手总结PHP学习资源和链接.
2006/12/05 PHP
phpMyadmin 用户权限中英对照
2010/04/02 PHP
一个完整的php文件上传类实例讲解
2015/10/27 PHP
Yii操作数据库实现动态获取表名的方法
2016/03/29 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
2020/02/11 PHP
幻宇的层模拟窗口效果-提供演示和下载
2007/01/20 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
用JavaScript实现页面重定向功能的教程
2015/06/04 Javascript
动态JavaScript所造成一些你不知道的危害
2016/09/25 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
基于Node.js的WebSocket通信实现
2017/03/11 Javascript
JS原型继承四步曲及原型继承图一览
2017/11/28 Javascript
详解vue填坑之解决部分浏览器不支持pushState方法
2018/07/12 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
[03:49]2016完美“圣”典风云人物:AMS专访
2016/12/06 DOTA
[53:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第三场 1月18日
2021/03/11 DOTA
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
Python面向对象思想与应用入门教程【类与对象】
2019/04/12 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
奥地利汽车配件店:Pkwteile.at
2017/03/10 全球购物
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
局部内部类是否可以访问非final变量?
2013/04/20 面试题
开会迟到检讨书
2014/02/03 职场文书
电力安全事故反思
2014/04/27 职场文书
家长对孩子的寄语
2015/02/26 职场文书
美丽的大脚观后感
2015/06/03 职场文书
郭明义观后感
2015/06/08 职场文书
迎新生晚会主持词
2015/06/30 职场文书
大学军训通讯稿(2016最新版)
2015/12/21 职场文书
golang 语言中错误处理机制
2021/08/30 Golang
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技