php实现的日历

日历效果如下图:

calendar.class.php

<?php
class Calendar {
        private $year; //当前的年
        private $month; //当前的月
        private $start_weekday; //当月的第一天对应的是周几
        private $days; //当前月一共多少天  

        function __construct(){
            $this->year=isset($_GET["year"]) ? $_GET["year"] : date("Y");
            $this->month=isset($_GET["month"]) ? $_GET["month"] : date("m");  

            $this->start_weekday=date("w", mktime(0, 0, 0, $this->month, 1, $this->year));
            $this->days=date("t", mktime(0, 0, 0, $this->month, 1, $this->year));
        }  

        function out(){
            echo '<table align="center">';
            $this->chageDate("test.php");
            $this->weeksList();
            $this->daysList();
            echo '</table>';
        }  

        private function weeksList(){
            $week=array('日','一','二','三','四','五','六');  

            echo '<tr>';
            for($i=0; $i<count($week); $i++)
                echo '<th class="fontb">'.$week[$i].'</th>';  

            echo '</tr>';
        }  

        private function daysList(){
            echo '<tr>';
            //输出空格(当前一月第一天前面要空出来)
            for($j=0; $j<$this->start_weekday; $j++)
                echo '<td> </td>';  

            for($k=1; $k<=$this->days; $k++){
                $j++;
                if($k==date('d'))
                    echo '<td class="fontb">'.$k.'</td>';
                else
                    echo '<td>'.$k.'</td>';  

                if($j%7==0)
                    echo '</tr><tr>';  

            }  

            //后面几个空格
            while($j%7!==0){
                echo '<td> </td>';
                $j++;
            }  

            echo '</tr>';
        }  

        private function prevYear($year, $month){
            $year=$year-1;  

            if($year < 1970)
                $year = 1970;  

            return "year={$year}&month={$month}";
        }  

        private function prevMonth($year, $month){
            if($month == 1) {
                $year = $year -1;  

                if($year < 1970)
                    $year = 1970;  

                $month=12;
            }else{
                $month--;
            }  

            return "year={$year}&month={$month}";
        }  

        private function nextYear($year, $month){
            $year = $year + 1;  

            if($year > 2038)
                $year = 2038;  

            return "year={$year}&month={$month}";
        }
    // URL:http://www.bianceng.cn/webkf/PHP/201410/45945.htm

        private function nextMonth($year, $month){
            if($month==12){
                $year++;  

                if($year > 2100)
                    $year=2100;  

                $month=1;
            }else{
                $month++;
            }  

            return "year={$year}&month={$month}";
        }  

        private function chageDate($url=""){
            echo '<tr>';
            echo '<td><a href="?'.$this->prevYear($this->year, $this->month).'">'.'<<'.'</a></td>';
            echo '<td><a href="?'.$this->prevMonth($this->year, $this->month).'">'.'<'.'</a></td>';
            echo '<td colspan="3">';
            echo '<form>';
            echo '<select name="year" onchange="window.location=\''.$url.'?year=\'+this.options[selectedIndex].value+\'&month='.$this->month.'\'">';
            for($sy=1970; $sy <= 2100; $sy++){
                $selected = ($sy==$this->year) ? "selected" : "";
                echo '<option '.$selected.' value="'.$sy.'">'.$sy.'</option>';
            }
            echo '</select>';
            echo '<select name="month"  onchange="window.location=\''.$url.'?year='.$this->year.'&month=\'+this.options[selectedIndex].value">';
            for($sm=1; $sm<=12; $sm++){
                $selected1 = ($sm==$this->month) ? "selected" : "";
                echo '<option '.$selected1.' value="'.$sm.'">'.$sm.'</option>';
            }
            echo '</select>';
            echo '</form>';
            echo '</td>';  

            echo '<td><a href="?'.$this->nextYear($this->year, $this->month).'">'.'>>'.'</a></td>';
            echo '<td><a href="?'.$this->nextMonth($this->year, $this->month).'">'.'>'.'</a></td>';
            echo '</tr>';
        }  

    }
?>

test.php

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
, class
, 日历
, calendar
效果
php 实现日历提醒功能、js实现日历的签到、日历记事本程序的实现、html日历的实现、java实现日历签到功能,以便于您获取更多的相关知识。

时间: 2024-12-11 16:18:10

php实现的日历的相关文章

win8 日历中显示农历和节假日的方法

在Windows 8日历显示农历和节假日: 第一步.打开https://login.live.com/,登录自己的帐号,在Hotmail选项中选择日历,再点击订阅,进入订阅界面 第二步.日历输入: www.google.com/calendar/ical/khev4hvo95dho74k3km1joavc0%40group.calendar.google.com/public/basic.ics 第三步.节假日输入: ical.mac.com/ical/China32Public32Holida

php Calender(日历)代码

 这篇文章主要介绍了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

自己动手丰衣足食之日历

<!doctype html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <style> body { font-family: 'Helvetica'; } * { margin: 0; padding: 0; } ul li { list-style:

如何用Word日历向导查农历

主要操作步骤如下: 第一步,单击菜单"文件→新建",在"新建文档"窗口中选择"通用模板",马上弹出"模板"对话框,单击"其他文档"标签,嘿,看到"日历向导"了. 第二步,鼠标双击"日历向导",弹出了"日历向导"对话框,在左边的向导流程图中单击"日期范围". 第三步,经初步推测,每年农历春节可能在公历的1~3月期间,于是设定起止年

网易云音乐你的2016专属音乐日历怎么查看?

  网易云音乐你的2016专属音乐日历怎么查看? 1.打开网易云音乐,点击上面你的2016专属音乐日历幻灯片 网易云音乐 网易云音乐 2.点击查看,就能看自己的记录哦!

在win8日历显示农历和节假日

农历是中国长期采用的一种传统历法,也是最早使用的历法,是非常重要的,所以在Windows 8 Metro日历中显示农历和节假日是很有必要的,下面Win8迷教你如何在Windows 8 日历添加农历和节假日显示. 在Windows 8日历显示农历和节假日: 打开https://login.live.com/,登录自己的帐号,在Hotmail选项中选择日历,再点击订阅,进入订阅界面 日历输入: www.google.com/calendar/ical/khev4hvo95dho74k3km1joav

人生日历:新增记事,让桌面更加丰富

日历,是人们日常生活中不可或缺的实用小功能.对于天天对着电脑办公的人来说,一款实用清新的电脑桌面日历工具必不可少!人生日历是一款精美小巧的桌面日历小工具,用户可以通过它便捷的查询公农历,黄历,天气以及节假日等生活信息,新增记事本功能,快捷记事,方便你随手记录下生活中的重要事项!日历界面支持换肤功能,随心搭配,让便捷和清新伴随你生活的每一天! 人生日历的主界面初始默认的是透明皮肤,采用公农历双日历的显示模式,我们可以清楚的看到,在每个日历格内都会显示相对应的公农历日期. 图1 在人生日历界面的左上

人生日历网页版怎么用?

  人生日历网页版怎么用?小编带来人生日历网页版使用方法,人生日历也有web版咯~具体功能有哪些呢?有兴趣的朋友可以来了解一下. 细心的童鞋们一定发现了人生日历这一贴心功能的出现.在人生日历官网主页右上角的醒目位置,很轻松的就能找到"网页版"日历.下面小编带大家来体验一下. 人生日历的web版分为两个主要部分,第一部分是主日历部分.在主日历上,童鞋们可以查看日历,阳历和农历对应显示,清晰明了.点击主日历上方的下拉按钮,可查看一年的法定节假日放假调休的安排,让自己随时都能根据安排来计划自

在Windows 7中使用Windows日历组件

  首先,下载网友从Vista中分离出的Windows日历 下载后,将其解压到Program FilesWindows Calendar文件夹中,右键单击可执行程序文件名WinCal,选择"锁定到任务栏"或"附到开始菜单"即可. 压缩包内文件夹说明: zh-CN--日历组件的简体中文语言包 en-US--英文语言包 Windows日历主界面 Windows日历组件默认使用简体中文界面,如需英文,将zh-cn改名或删除,关闭并重启日历组件即可.经测试,该组件可在Win

花样翻新 玩转Windows Vista日历功能

相信很多朋友都已经用上了微软的最新操作系统:Windows Vista,那么你可千万不要错过其中的"Windows日历"这款组件,它可以在开始菜单的"所有程序"下找到身影.简单地说,Windows日历的功能非常类似于Office Outlook中的日历功能,但由于与操作系统无缝集成,因此使用起来更为方便.如果只是将Windows日历作为安排约会的工具,那么确实有些浪费,这里介绍用好Windows日历的几则技巧. 为Windows日历添加农历 如果你注意的话,会发现W