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+javascript模拟Matrix画面
Oct 09 PHP
模仿OSO的论坛(一)
Oct 09 PHP
基于PHP读取csv文件内容的详解
Jun 18 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
Jun 29 PHP
PHP中time(),date(),mktime()区别介绍
Sep 28 PHP
php过滤XSS攻击的函数
Nov 12 PHP
PHP判断远程图片或文件是否存在的实现代码
Feb 20 PHP
Centos PHP 扩展Xchche的安装教程
Jul 09 PHP
PHP 读取大文件并显示的简单实例(推荐)
Aug 12 PHP
Laravel中的Auth模块详解
Aug 17 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
Sep 15 PHP
基于php双引号中访问数组元素报错的解决方法
Feb 01 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
php.ini中的php-5.2.0配置指令详解
2008/03/27 PHP
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
2015/01/07 PHP
php读取文件内容到数组的方法
2015/03/16 PHP
php单链表实现代码分享
2016/07/04 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
2019/05/05 PHP
JS使用ajax从xml文件动态获取数据显示的方法
2015/03/24 Javascript
Bootstrap BootstrapDialog使用详解
2017/02/17 Javascript
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
JavaScript实现计算多边形质心的方法示例
2018/01/31 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
解决layui中的form表单与button的点击事件冲突问题
2018/08/15 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
vue多级复杂列表展开/折叠及全选/分组全选实现
2018/11/05 Javascript
Vue如何提升首屏加载速度实例解析
2020/06/25 Javascript
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
Python判断telnet通不通的实例
2019/01/26 Python
python logging模块书写日志以及日志分割详解
2019/07/22 Python
Django实现网页分页功能
2019/10/31 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
Python Dataframe常见索引方式详解
2020/05/27 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
BOSE德国官网:尽探索之力,享音乐之极
2016/12/11 全球购物
澳大利亚便宜的家庭购物网站:CrazySales
2018/02/06 全球购物
后勤人员自我评价怎么写
2013/09/19 职场文书
党员教师工作决心书
2014/03/13 职场文书
建筑工地质量标语
2014/06/12 职场文书
2014年政教处工作总结
2014/12/20 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
行政处罚告知书
2015/07/01 职场文书
小学运动会通讯稿
2015/07/18 职场文书
HTML+JS实现在线朗读器
2022/02/15 Javascript
Vue2项目中对百度地图的封装使用详解
2022/06/16 Vue.js