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中的CMS的涵义
Mar 11 PHP
如何用phpmyadmin设置mysql数据库用户的权限
Jan 09 PHP
解析php中memcache的应用
Jun 18 PHP
ecshop后台编辑器替换成ueditor编辑器
Mar 03 PHP
PHP实现XML与数据格式进行转换类实例
Jul 29 PHP
PHP处理会话函数大总结
Aug 05 PHP
PHP判断上传文件类型的解决办法
Oct 20 PHP
php实现当前页面点击下载文件的简单方法
Sep 22 PHP
php生成二维码图片方法汇总
Dec 17 PHP
PHP完全二叉树定义与实现方法示例
Oct 09 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 PHP
PHP中常见的密码处理方式和建议总结
Oct 14 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 取得瑞年与平年的天数的代码
2009/08/10 PHP
用javascript编写的第一人称射击游戏
2007/02/25 Javascript
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
让innerText在firefox火狐和IE浏览器都能用的写法
2011/05/14 Javascript
Jquery 表格合并的问题分享
2011/09/17 Javascript
js处理json以及字符串的比较等常用操作
2013/09/08 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
javascript Array 数组常用方法
2015/04/05 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
javascript 封装Date日期类实例详解
2017/05/28 Javascript
JS+php后台实现文件上传功能详解
2019/03/02 Javascript
Vue 中如何正确引入第三方模块的方法步骤
2019/05/05 Javascript
关于Python中浮点数精度处理的技巧总结
2017/08/10 Python
python探索之BaseHTTPServer-实现Web服务器介绍
2017/10/28 Python
Python机器学习logistic回归代码解析
2018/01/17 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
对Tensorflow中的矩阵运算函数详解
2018/07/27 Python
python机器学习之神经网络实现
2018/10/13 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
2018/10/29 Python
对python读写文件去重、RE、set的使用详解
2018/12/11 Python
Python将字符串常量转化为变量方法总结
2019/03/17 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
2019/07/12 Python
Python  Django 母版和继承解析
2019/08/09 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
美国豪华的多品牌精品店:The Webster
2019/07/31 全球购物
Ado与Ado.net的相同与不同
2014/12/08 面试题
军神教学反思
2014/02/04 职场文书
毕业生找工作求职信
2014/08/05 职场文书
2015年国庆节慰问信
2015/03/23 职场文书
英雄儿女观后感
2015/06/09 职场文书
领导欢送会主持词
2015/07/06 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python