php Calender(日历)代码分享


Posted in PHP onJanuary 03, 2014

代码如下:

<?php
/**
 * 
 * 我的日历
 * date_default_timezone_set date mktime
 * @param int $year
 * @param int $month
 * @param string $timezone
 * @author fc_lamp
 */
function myCalender($year = '', $month = '', $timezone = 'Asia/Shanghai')
{    date_default_timezone_set ( $timezone );
    $year = abs ( intval ( $year ) );
    $month = abs ( intval ( $month ) );
    //是否是32位机
    if (is32())
    {
        if ($year < 1970 or $year >= 2038)
        {
            $year = date ( 'Y' );
        }
    } else
    {
        if ($year <= 0)
        {
            $year = date ( 'Y' );
        }
    }
    if ($month <= 0 or $month > 12)
    {
        $month = date ( 'm' );
    }
    //上一年
    $pretYear = $year - 1;
    //上一月
    $mpYear = $year;
    $preMonth = $month - 1;
    if ($preMonth <= 0)
    {
        $preMonth = 1;
        $mpYear = $pretYear;
    }
    //下一年
    $nextYear = $year + 1;
    //下一月
    $mnYear = $year;
    $nextMonth = $month + 1;
    if ($nextMonth > 12)
    {
        $nextMonth = 1;
        $mnYear = $nextYear;
    }
    //日历头
    $html = <<<HTML
<table width="500" border="1">
  <tr align="center">
    <td><a href="?y=$pretYear">上一年</a></td>
    <td><a href="?y=$mpYear&m=$preMonth">上一月</a></td>
     <td><a href="?">回到今天</a></td>
    <td><a href="?y=$mnYear&m=$nextMonth">下一月</a></td>
    <td><a href="?y=$nextYear">下一年</a></td>
  </tr>
  <tr align="center">
    <td colspan="5">{$year}年{$month}月</td>
  </tr>
  <tr>
      <td colspan="5">
        <table width="100%" border="1">
            <tr align="center">
                <td style="background-color:#DAF0DD;">星期一</td>
                <td style="background-color:#DAF0DD;">星期二</td>
                <td style="background-color:#DAF0DD;">星期三</td>
                <td style="background-color:#DAF0DD;">星期四</td>
                <td style="background-color:#DAF0DD;">星期五</td>
                <td style="background-color:#F60;color:#fff;font-weight: bold;">星期六</td>
                <td style="background-color:#F60;color:#fff;font-weight: bold;">星期天</td>
            </tr>
HTML;
    $currentDay = date ( 'Y-m-j' );
    //当月最后一天
    $lastday = date ( 'j', mktime ( 0, 0, 0, $nextMonth, 0, $year ) );
    //循环输出天数
    $day = 1;
    $line = '';
    while ( $day <= $lastday )
    {
        $cday = $year . '-' . $month . '-' . $day;
        //当前星期几
        $nowWeek = date ( 'N', mktime ( 0, 0, 0, $month, $day, $year ) );
        if ($day == 1)
        {
            $line = '<tr align="center">';
            $line .= str_repeat ( '<td> </td>', $nowWeek - 1 );
        }
        if ($cday == $currentDay)
        {
            $style = 'style="color:red;"';
        } else
        {
            $style = '';
        }
        $line .= "<td $style>$day</td>";
        //一周结束
        if ($nowWeek == 7)
        {
            $line .= '</tr>';
            $html .= $line;
            $line = '<tr align="center">';
        }
        //全月结束
        if ($day == $lastday)
        {
            if ($nowWeek != 7)
            {
                $line .= str_repeat ( '<td> </td>', 7 - $nowWeek );
            }
            $line .= '</tr>';
            $html .= $line;
            break;
        }
        $day ++;
    }
    $html .= <<<HTML
        </table>    
    </td>
  </tr>
</table>
HTML;
    return $html;
}

/**
 * 
 * 检测是否是32位机
 * @author fc_lamp
 * @blog: fc-lamp.blog.163.com
 */
function is32()
{
    $is32 = False;
    if (strtotime ( '2039-10-10' ) === False)
    {
        $is32 = True;
    }
    return $is32;
}
PHP 相关文章推荐
php下使用SimpleXML 处理XML 文件
Feb 27 PHP
PHP开启gzip页面压缩实例代码
Mar 11 PHP
php中检查文件或目录是否存在的代码小结
Oct 22 PHP
PHP中feof()函数实例测试
Aug 23 PHP
Yii学习总结之安装配置
Feb 22 PHP
php实现图片上传并进行替换操作
Mar 15 PHP
详解PHP的Yii框架的运行机制及其路由功能
Mar 17 PHP
php实现文件上传及头像预览功能
Jan 15 PHP
老生常谈PHP面向对象之命令模式(必看篇)
May 24 PHP
thinkPHP5项目中实现QQ第三方登录功能
Oct 20 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
PHP 应用容器化以及部署方法
Feb 12 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
Jan 03 #PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
Jan 03 #PHP
PHP抓屏函数实现屏幕快照代码分享
Jan 02 #PHP
php curl模拟post提交数据示例
Dec 31 #PHP
codeigniter使用技巧批量插入数据实例方法分享
Dec 31 #PHP
PHP字符串的连接的简单实例
Dec 30 #PHP
php实现执行某一操作时弹出确认、取消对话框
Dec 30 #PHP
You might like
信用卡效验程序
2006/10/09 PHP
php中stdClass的用法分析
2015/02/27 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
2016/06/14 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
2016/08/01 Javascript
谈谈JavaScript的New关键字
2016/08/26 Javascript
完美解决IE9浏览器出现的对象未定义问题
2016/09/29 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
Bootstrap 模态框实例插件案例分析
2016/12/28 Javascript
原生js实现可拖动的登录框效果
2017/01/21 Javascript
Vue响应式添加、修改数组和对象的值
2017/03/20 Javascript
浅谈如何使用 webpack 优化资源
2017/10/20 Javascript
Bootstrap 3多级下拉菜单实例
2017/11/23 Javascript
JQuery 又谈ajax局部刷新
2017/11/27 jQuery
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
vue实现行列转换的一种方法
2019/08/06 Javascript
原生JS实现留言板功能
2020/02/08 Javascript
vue props 单项数据流实例分享
2020/02/16 Javascript
vue 防止页面加载时看到花括号的解决操作
2020/11/09 Javascript
推荐下python/ironpython:从入门到精通
2007/10/02 Python
Python 爬取携程所有机票的实例代码
2018/06/11 Python
django+xadmin+djcelery实现后台管理定时任务
2018/08/14 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
2019/06/19 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
基于python计算并显示日间、星期客流高峰
2020/05/07 Python
Python numpy大矩阵运算内存不足如何解决
2020/11/19 Python
matplotlib更改窗口图标的方法示例
2021/02/03 Python
工商管理专业应届生求职信
2013/11/04 职场文书
企业法人授权委托书
2014/09/25 职场文书
党的群众路线教育实践活动查摆问题及整改措施
2014/10/10 职场文书
会议欢迎词
2015/01/23 职场文书
宿舍管理制度范本
2015/08/07 职场文书
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
2021/04/01 PHP
mysql脏页是什么
2021/07/26 MySQL