简单实用PHP日历程序代码

PHP日历程序,功能都是大众化的,可以下拉切换年月,上一年下一月下一年上一月,太另类的没去写,主要的写出来了,扩展起来就方便多了,标题为什么要叫精美呢,是因自已感觉界面还过得去,哈哈,让大家见笑了,不足之处还请指出。

效果代码如下

php日历核心代码

 代码如下 复制代码

<?php
//日历类
class calendar {
    //当前的年
    private $year;
    //当前的月
    private $month;
    //一个月中第一天是星期几
    private $start_weekday;
    //当前月的天数
    private $days;
    //最大数与最小年数,最大与最小月数
    private $yearMonth = array(2080, 1900, 12, 1);
    //构造函数
    function __construct() {
        if (isset($_GET['year'])) {
           $this->year = $_GET['year'];
        }
            if (isset($_GET['month'])) {
            $this->month = $_GET['month'];
        }
        $this->pnYm($this->year, $this->month);
        $this->days = date('t', mktime(0, 0, 0, $this->month, 1, $this->year));
        $this->start_weekday = date('w', mktime(0, 0, 0, $this->month, 1, $this->year));
        $this->style();
    }
    //输出
    private function style() {
        echo '<table id="calendar">';
        $this->weeklist();
        $this->daylist();
        echo '<table>';
    }
    //年月参数判断
    private function ymCheck($year, $month) {
        if (!is_numeric($year)) {
            $year = date('Y');
        }
        if (!is_numeric($month)) {
            $month = date('m');
        }
        if ($month < $this->yearMonth[3]) {
            $month = $this->yearMonth[2];
            $year -= 1;
        }
        if ($month > $this->yearMonth[2]) {
            $month = $this->yearMonth[3];
            $year = intval($year) + 1;
        }
        $year = $year < $this->yearMonth[1] ? $this->yearMonth[1] : $year;
        $year = $year > $this->yearMonth[0] ? $this->yearMonth[0] : $year;
        return array($year, $month);
    }
    //上一年、下一年、上一月、下一月
    private function pnYm($year, $month) {
        $ym = $this->ymCheck($year, $month);
        $this->year = $ym[0];
        $this->month = $ym[1];
    }
    //weeklist周列表
    private function weeklist() {
        $week = array('日','一','二','三','四','五','六');
        echo '<tr>';
        foreach ($week as $val) {
            echo '<th>'.$val.'</th>';
        }
        echo '</tr>';
    }
    //daylist天列表
    private function daylist() {
        //年月日导航
        echo '<tr>';
        echo '<td><a title="上一年" href="?year='.($this->year-1).'&month='.$this->month.'"><<</a></td>';
        echo '<td><a title="上一月" href="?year='.$this->year.'&month='.($this->month-1).'"><</a></td>';
        echo '<td colspan="3">';
        echo '<form action="?" method="get" id="form">';
        echo '<select name="year" onchange="formaction()">';
        for ($i = $this->yearMonth[1]; $i <= $this->yearMonth[0]; $i++) {
             if ($i == $this->year) {
                   echo '<option value="'.$i.'" selected="selected">'.$i.'年</option>';
             }else {
                   echo '<option value="'.$i.'">'.$i.'年</option>';
             }
        }
        echo '</select>';
        echo '<select name="month" onchange="formaction()">';
        for ($i = $this->yearMonth[3]; $i <= $this->yearMonth[2]; $i++) {
            if ($i == $this->month) {
                 echo '<option value="'.$i.'" selected="selected">'.$i.'月</option>';
            }else {
                 echo '<option value="'.$i.'">'.$i.'月</option>';
            }
        }
       echo '</select></form></td>';
       echo '<td><a title="下一月" href="?year='.$this->year.'&month='.($this->month+1).'">></a></td>';
       echo '<td><a title="下一年" href="?year='.($this->year+1).'&month='.$this->month.'">>></a></td>';
       echo '</tr>';

       echo '<tr>';
       //输出空格(当前一个月第一天前面要空出来的)
       for($i = 0; $i < $this->start_weekday; $i++) {
             echo '<td>&nbsp;</td>';
       }
       for ($k = 1; $k <= $this->days; $k++) {
            $i++;
            if ($k == date('d')) {
                  echo '<td>'.$k.'</td>';
            }else {
                  echo '<td>'.$k.'</td>';
            }
            if ($i % 7 == 0) {
                 if ($k != $this->days) {
                        echo '</tr><tr>';
                 }
            }
        }
         echo '</tr>';
    }
}
?>

html+css代码

 代码如下 复制代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PHP日历程序</title>
<style>
#calendar { width:auto; margin:0 auto; margin-top:100px; border:0; border-collapse:collapse; box-shadow:0px 0px 4px #ddd; font-size:12px; text-align:center; font-family:"微软雅黑"; color:#333; border:solid 1px #c5e2ff; }
#calendar tr { width:auto; height:34px; line-height:34px; }
#calendar tr th { width:44px; background:#c5e2ff; }
#calendar tr td { background:#fff; }
#calendar tr td.tdbg { background:#c5e2ff; }
#calendar tr td:hover { background:#FFC; }
#calendar tr td a { text-decoration:none; color:#f50; font-weight:900; }
#calendar select { width:auto; border:solid 1px #c5c5c5; padding:2px 0 2px 0; background:#fff; float:left; margin-left:5px; }
</style>
<script>
function formaction() {
    var form = document.getElementById('form');
    form.submit();
}
</script>
</head>
<body>
<?php
require 'init.php';
$calendar = new calendar();
?>
</body>
</html>

时间: 2024-10-06 03:26:21

简单实用PHP日历程序代码的相关文章

php简单实用文件上传代码(1/2)

<?php教程 if($_files['file']){  // ----------------------------------------------------------------------------------------------// // // 说明:文件上传   日期:2004-5-2 // // --------------------------------------------------------------------------------------

一个简单的JAVA日历程序

/**以下是日历的代码程序 有疑问 回信 ycj@18e.net **/ //CalenderTrain.java package com.swing; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; public class CalenderTrain extends JFrame implements ActionListener { JComboBox Month =

PHP实现简单实用的分页类代码_php技巧

本文实例讲述了PHP实现简单实用的分页类.分享给大家供大家参考,具体如下: <?php class Page { private $total; //总记录 private $pagesize; //每页显示多少条 private $limit; //limit private $page; //当前页码 private $pagenum; //总页码 private $url; //地址 private $bothnum; //两边保持数字分页的量 //构造方法初始化 public funct

php简单的日历程序代码

通过date()函数可以很容易获得上面的数据  代码如下 复制代码 <?php $month = $_GET['m']?$_GET['m']:date('n'); $year = $_GET['y']?$_GET['y']:date('Y'); $start_week = date('w',mktime(0,0,0,$month,1,$year)); $day_num = date('t',mktime(0,0,0,$month,1,$year)); $end = false; ?> <

php实现简单用户登录功能程序代码

用户登录系统(没数据库) 关键的代码: 在loginUI.php中主要是: --------------------------–  代码如下 复制代码 <?php if(error!=null){ $error=$_GET['error']; echo $error; echo "登陆失败,请检查您的用户名(yugaga)和密码(123456)"; } ?> ---------------------------- 就是在登录失败之后显示一些提示信息 在loginChec

简单实用的ASP编程代码对照表

编程 1.获得系统时间: <%=now()%> 2.取得来访用的IP: <%=request.serverVariables("remote_host")%> 3.获得系统,浏览器版本: <script> window.document.write("版本:"+navigator.appName+navigator.appVersion+" browser.") </script> 4.去除IE混动

简单实用php mysql分页代码

 代码如下 复制代码 $qh=mysql_query("select count(*) as rcnt from table where your_condition_here order by whatever"); $data=mysql_fetch_array($qh); $nr=$data["rcnt"]; //判断偏移量参数是否传递给了脚本,如果没有就使用默认值0 if (empty($offset)) { $offset=0; } //查询结果(这里是每

javascript简单实用的选项卡实例代码

最新新闻 最新文章 最新日志 论坛新帖 第一个内容:预防蜱虫必知的11个知识问答 第二个内容:购物商城限时抢购,倒计时JS代码 第三个内容:落魄千万富翁的一首歌-很man 第四个内容:七十六个网站用户体验要点

简单实用的excel编程代码(1/2)

private _workbook _workbook = null; private worksheet _worksheet = null; private excel.application _excelapplicatin = null; _excelapplicatin = new excel.application(); _excelapplicatin.visible = true; _excelapplicatin.displayalerts = true; _workbook