php Calender(日历)代码分享

代码如下:

代码如下:

<?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;
}

(0)

相关推荐

  • PHP实现的汉字拼音转换和公历农历转换类及使用示例

    本文整理了PHP汉字拼音转换和公历农历转换两个功能类文件,非常实用.比如我们查找通讯录可以通过联系人姓名的拼音首字母来查询,可以通过首字母来导航大数据量,可以通过转换拼音来做网站优化等.公农历转化一般用在日历日程安排的项目中,方便农历的节日提醒等等. 1.PHP汉字转拼音 Pinyin.class.php类文件可以将大多数汉字转换成汉语拼音,当然也有个别生僻字不能转换,如果你想转换所有的汉字拼音的话,可能需要再配合一个汉字字库来实现,使用该类文件就基本能满足你的项目需求了.用法: 复制代码 代码

  • php 阴历-农历-转换类代码

    复制代码 代码如下: <?php/*** 公农历转换(1912 - 2012) * * Usage:*   // 公历1983-10-5转农历*   $lunar = new Lunar();*   $date = $lunar->getLar('1983-10-5',0);*   echo date("Y-m-d", $date);*   // 农历1983-8-29转公历*   $date = $lunar->getLar('1983-8-29',1);*   e

  • php阳历转农历优化版

    本文实例为大家分享了php阳历转农历代码,供大家参考,具体内容如下 <?php function nongli($riqi) { //优化修改 20160807 FXL $nian=date('Y',strtotime($riqi)); $yue=date('m',strtotime($riqi)); $ri=date('d',strtotime($riqi)); #源码部分原作者:沈潋(S&S Lab) #农历每月的天数 $everymonth=array( 0=>array(8,0

  • PHP实现的简单日历类

    本文实例讲述了PHP实现的简单日历类.分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: date_default_timezone_set("etc/gmt-8"); header("Content-type: text/html; charset=utf-8"); class calendar{ var $t = array(); var $datesofmonth = array('1'=>'31','2'=>'28','3'=>

  • php+javascript的日历控件

    复制代码 代码如下: <html> <head> <title>js calendar</title> <script language="javascript"> /* Copyright Mihai Bazon, 2002-2005 | www.bazon.net/mishoo * ----------------------------------------------------------- * * The DHT

  • php下实现农历日历的代码

    复制代码 代码如下: php农历日历 <?   ###########################################   #作者: 沈潋(S&S Lab)                      #   #E-mail:shenlian@hotmail.com              #   #web: http://www.focus-2000.com           #   #                                         #

  • php实现的农历算法实例

    本文实例讲述了php实现的农历算法.分享给大家供大家参考.具体如下: <?php function lunarcalendar ($month, $year) { global $lnlunarcalendar; /** * Lunar calendar 博大精深的农历 * 原始数据和算法思路来自 S&S */ /* 农历每月的天数. 每个元素为一年.每个元素中的数据为: [0]是闰月在哪个月,0为无闰月: [1]到[13]是每年12或13个月的每月天数: [14]是当年的天干次序, [15

  • PHP完整的日历类(CLASS)

    复制代码 代码如下: <?php  class Calendar{  /*  * www.jb51.net修正版 */  var $YEAR,$MONTH,$DAY;  var $WEEK=array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");  var $_MONTH=array(  "01"=&

  • PHP实现阳历到农历转换的类实例

    本文实例讲述了PHP实现阳历到农历转换的类.分享给大家供大家参考.具体如下: 复制代码 代码如下: <?php //PHP阳历到农历转换的一个类 class Calendar { //农历每月的天数     var $everyCMonth=array(     0=>array(8,0,0,0,0,0,0,0,0,0,0,0,29,30,7,1),     1=>array(0,29,30,29,29,30,29,30,29,30,30,30,29,0,8,2),     2=>

  • PHP编程实现阳历转换为阴历的方法实例

    本文实例讲述了PHP编程实现阳历转换为阴历的方法.分享给大家供大家参考,具体如下: php类 <?php /** * Class Lunar * 农历 节气 节日 * author:guoyu@xzd */ class Lunar { public $MIN_YEAR = 1891; public $MAX_YEAR = 2100; public $lunarInfo = array( array(0,2,9,21936),array(6,1,30,9656),array(0,2,17,9584

  • php实现阳历阴历互转的方法

    最近对阳历转阴历从而得到相应节日的算法这方面比较感兴趣,于是就在网上搜了一圈.不错,还算是找到一个比较不错的php类,实现了将阳历转换为阴历(农历),阴历转换为阳历的算法,同时还能获取干支纪年,生肖,以及相应的阴历的中文叫法等等,功能还是挺齐全的,在这里分享给大家. 具体类代码如下: class Lunar{ var $MIN_YEAR=1891; var $MAX_YEAR=2100; var $lunarInfo=array( array(0,2,9,21936),array(6,1,30,

随机推荐