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 相关文章推荐
PHP 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性
Oct 09 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
May 06 PHP
php中将数组存到文件里的实现代码
Jan 19 PHP
PHP+JS实现大规模数据提交的方法
Jul 02 PHP
PHP 读取大文件并显示的简单实例(推荐)
Aug 12 PHP
Yii2单元测试用法示例
Nov 12 PHP
php实用代码片段整理
Nov 12 PHP
Smarty日期时间操作方法示例
Nov 15 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
Apr 04 PHP
PHP面向对象五大原则之接口隔离原则(ISP)详解
Apr 04 PHP
PHP单例模式模拟Java Bean实现方法示例
Dec 07 PHP
HTTP头隐藏PHP版本号实现过程解析
Dec 09 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
Protoss魔法科技
2020/03/14 星际争霸
PHP CURL模拟GET及POST函数代码
2010/04/25 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
smarty模板数学运算示例
2016/12/11 PHP
thinkPHP5 ACL用户权限模块用法详解
2017/05/10 PHP
PHP 命名空间和自动加载原理与用法实例分析
2020/04/29 PHP
比较简单实用的使用正则三种版本的js去空格处理方法
2007/11/18 Javascript
一段利用WSH获取登录时间的jscript代码
2008/05/11 Javascript
使用jQuery操作Cookies的实现代码
2011/10/09 Javascript
cookie 最近浏览记录(中文escape转码)具体实现
2013/06/08 Javascript
uploadify在Firefox下丢失session问题的解决方法
2013/08/07 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
2014/05/15 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
2014/10/22 Javascript
学习JavaScript设计模式之中介者模式
2016/01/14 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
2017/06/29 jQuery
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
nodejs中使用archive压缩文件的实现代码
2019/11/26 NodeJs
修改vue源码实现动态路由缓存的方法
2020/01/21 Javascript
python连接数据库的方法
2017/10/19 Python
python使用xpath中遇到:到底是什么?
2018/01/04 Python
Flask Web开发入门之文件上传(八)
2018/08/17 Python
python 将list转成字符串,中间用符号分隔的方法
2018/10/23 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
怎样从/向数据文件读/写结构
2014/11/23 面试题
幼儿园长自我鉴定
2013/10/17 职场文书
高职教师岗位职责
2013/12/24 职场文书
大学生全国两会报告感想
2014/03/17 职场文书
写给老师的保证书
2015/05/09 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
丧事酒宴答谢词
2015/09/30 职场文书
python文本处理的方案(结巴分词并去除符号)
2021/05/26 Python