PHP自动生成月历代码


Posted in PHP onOctober 09, 2006

<?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 相关文章推荐
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
Mar 29 PHP
PHP中PDO基础教程 入门级
Sep 04 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
May 10 PHP
浅析memcache启动以及telnet命令详解
Jun 28 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
Dec 17 PHP
php获取数组元素中头一个数组元素值的实现方法
Dec 20 PHP
PHP判断IP并转跳到相应城市分站的方法
Mar 25 PHP
PHP实现根据图片色界在不同位置加水印的方法
Aug 08 PHP
PHP时间戳和日期相互转换操作实例小结
Dec 18 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
Oct 23 PHP
laravel 解决Validator使用中出现的问题
Oct 25 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 04 PHP
十天学会php(3)
Oct 09 #PHP
十天学会php(1)
Oct 09 #PHP
十天学会php(2)
Oct 09 #PHP
论坛头像随机变换代码
Oct 09 #PHP
PHP中路径问题的解决方案
Oct 09 #PHP
新浪新闻小偷
Oct 09 #PHP
如何使用PHP获取网络上文件
Oct 09 #PHP
You might like
php接口与接口引用的深入解析
2013/08/09 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
jquery手风琴特效插件
2015/02/04 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
JavaScript 浏览器兼容性总结及常用浏览器兼容性分析
2016/03/30 Javascript
javascript 实现动态侧边栏实例详解
2016/11/11 Javascript
JS重载实现方法分析
2016/12/16 Javascript
js实现购物车功能
2018/06/12 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
2019/01/06 Javascript
js中实例与对象的区别讲解
2019/01/21 Javascript
在JavaScript中实现链式调用的实现
2019/12/24 Javascript
keep-alive不能缓存多层级路由菜单问题解决
2020/03/10 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
2020/11/07 Javascript
[00:23]魔方之谜解锁款式
2018/12/20 DOTA
python检查URL是否正常访问的小技巧
2017/02/25 Python
python中defaultdict的用法详解
2017/06/07 Python
Python流程控制 while循环实现解析
2019/09/02 Python
python之列表推导式的用法
2019/11/29 Python
Python调用Windows命令打印文件
2020/02/07 Python
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
教师职称自我鉴定
2014/02/12 职场文书
运动会入场式解说词
2014/02/18 职场文书
五好关工委申报材料
2014/05/31 职场文书
教师节感恩老师演讲稿
2014/08/28 职场文书
2014单位领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
招商引资工作汇报材料
2014/10/28 职场文书
护士长2014年度工作总结
2014/11/11 职场文书
考试没考好检讨书(精选篇)
2014/11/16 职场文书
行政复议答复书
2015/07/01 职场文书
诚信教育主题班会
2015/08/13 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
2022/04/29 Servers
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript