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 相关文章推荐
一个ubbcode的函数,速度很快.
Oct 09 PHP
一些php技巧与注意事项分析
Feb 03 PHP
支持中文字母数字、自定义字体php验证码代码
Feb 27 PHP
ThinkPHP中的关联模型注意点
Jun 16 PHP
PHP中使用Imagick操作PSD文件实例
Jan 26 PHP
Yii实现自动加载类地图的方法
Apr 01 PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
Jun 19 PHP
Laravel网站打开速度优化的方法汇总
Jul 16 PHP
PHP设计模式之PHP迭代器模式讲解
Mar 22 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
Oct 15 PHP
laravel框架如何设置公共头和公共尾
Oct 22 PHP
thinkphp5.1 框架钩子和行为用法实例分析
May 25 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 根据key 给二维数组分组
2016/12/09 PHP
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
javascript 判断数组是否已包含了某个元素的函数
2010/05/30 Javascript
Extjs显示从数据库取出时间转换JSON后的出现问题
2012/11/20 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
2015/09/09 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
2015/12/14 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
2016/06/06 Javascript
javascript中Number的方法小结
2016/11/21 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
JS实现移动端判断上拉和下滑功能
2017/08/07 Javascript
Vuex的actions属性的具体使用
2019/04/14 Javascript
Vue实现计算器计算效果
2020/08/17 Javascript
python获取一组汉字拼音首字母的方法
2015/07/01 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
python中的函数递归和迭代原理解析
2019/11/14 Python
python实现小世界网络生成
2019/11/21 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
python MD5加密的示例
2020/10/19 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
python爬虫智能翻页批量下载文件的实例详解
2021/02/02 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
2021/03/04 Python
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
Dr.Jart+美国官网:韩国药妆品牌
2019/01/18 全球购物
欧洲最大的预定车位市场:JustPark
2020/01/06 全球购物
介绍一下write命令
2014/08/10 面试题
如何清空Session
2015/02/23 面试题
班主任新年寄语
2014/04/04 职场文书
部门活动策划方案
2014/08/16 职场文书
群教班子对照检查材料
2014/08/26 职场文书
股东授权委托书范本
2014/09/13 职场文书
学习优秀党员杨宗兴先进事迹材料思想汇报
2014/09/14 职场文书
趣味运动会通讯稿
2015/07/18 职场文书
2015重阳节敬老活动总结
2015/07/29 职场文书
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
2021/05/30 Javascript