使用php制作的日历

 这篇文章主要介绍了使用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}"; 
  }
 
 
  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
 
  代码如下:
 <style>
 table {
  border:1px solid #050;
 }
 
 .fontb {
  color:white;
  background:blue;
 }
 
 
 th {
  width:30px;
 }
 
 td,th {
  height:30px;
  text-align:center;
 
 }
 form {
  margin:0px;
  padding:0px;
 }
</style>
<?php
 include "calendar.class.php";
 
 $calendar=new Calendar;
 
 $calendar->out();
?>
 

时间: 2024-08-03 14:36:38

使用php制作的日历的相关文章

Excel制作工作日历

  很多用户喜欢使用Excel制作工作日历,如图1所示的是某公司人力资源部的工作日历的一部分. 图1 工作日历表格 在这张表格中,有些工作是需要在周休日开展的,如果能把所有的周休日都醒目地标识出来,就能够避免一些时间安排上的问题了.使用条件格式可以方便地实现这个要求,方法如下. 单击A2并拖动光标到A17以选定区域A2:A17,单击菜单"格式"→"条件格式". 在"条件格式"对话框中,单击"条件1(1)"的下拉箭头,在列表中选

用Word制作带有日历的桌面

在平时工作中,我们更多的是用Word编写教案.总结等文字类材料. 其实还可以用Word制作带有"日历"的桌面,便于我们 查找日期.下面我就说说制作的过程,以Word http://www.aliyun.com/zixun/aggregation/19058.html">2003为例. 首先,打开Word 2003选择"插入"."对象",在弹出的"对象"窗口中的"新建"选项卡的下拉列表中选择&

辞旧迎新 金山WPS模板教你制作新年日历

  时间过得真快,转眼间又是一年,在这辞旧迎新之际,日夜陪伴我们的日历也该换了,今天我就教大家用WPS Office模板制作一份与众不同的新年日历,经济实惠,还能展示自己的个性风采. 网友登录WPS Office官网模板下载频道http://www.wps.cn/download/ ,在搜索框输入"日历"就可以下载到几十种漂亮模板. 1.DIY版独一无二月历 ▲ ▲ 点评:该款看起来更像是个小台历,除了日期和卡通图案之外,最具特色的在于页面右端的DIY区.网友可以将自己的PP靓照等美图

用Word 2010制作新年日历的方法

时间过得真快,转眼间又到岁未,新的一年又将拉开序幕,在这辞旧迎新之际,日夜陪伴我们的日历也该换了,商场中出售的日历虽然很精美,但是不够个性化,并且价格不菲,用Word 2010的日历向导制作一份与众不同的新年日历,经济实惠,还能展示自己的个性风采. 一.生成新年日历 日历看起来虽然很简单,但是由于年份.日期.星期.农历.节日.节气之间存在着很复杂的关系,如果人工推算,手工编辑是相当麻烦的,还是让Word 2010的日历模板为我们自动生成吧. 第一步:运行Word 2010,单击"文件"

Photoshop制作写实日历UI图标教程

给各位Photoshop软件的使用者们来详细的解析分享一下制作一枚写实的日历UI图标的教程. 教程分享:                                 好了,以上的信息就是小编给各位Photoshop的这一款软件的使用者们带来的详细的制作一枚写实的日历UI图标的教程分享的全部内容了,各位看到这里的使用者们,小编相信你们现在是非常的了解制作教程了吧,那么各位现在就快去自己尝试着制作下吧.

asp制作的日历程序

纯ASP打造的日历程序,可自行美化,这里仅提供最简单的CSS样式... <style>body{font-size:12px; margin:20px 0 0 20px; padding:0}tr,td{text-align:center;}</style><%'================================='说明:日历文件'================================='取出对应的年月博客日志数据'==================

Dreamweaver制作事件日历

  由于Calendar日历控件是服务器控件,要在含有runat="server"表单该服务器控件,但一页面中只能有一个含有runat="server"表单,不然有时会出现如图10-1所示的错误显示. 图10-1 页面只能有一个含有runat="server"表单的错误 那怎么办?这里是采取嵌入式框架进行转移. 10.1 添加Calendar日历控件 (1)新建一个空白ASP.NET VB动态页. (2)插入带出runat="serve

Jquery日历插件制作简单日历_jquery

在页面开发中,经常遇到需要用户输入日期的操作.通常的做法是,提供一个文本框(text),让用户输入,然后,编写代码验证输入的数据,检测其是否是日期类型.这样比较麻烦,同时,用户输入日期的操作也不是很方便,影响用户体验.如果使用jQuery UI中的datepicker(日历)插件,这些问题都可以迎刃而解.该插件调用的<span style="color:#cc66cc;"><strong>语法格式</strong></span>如下: 

如何通过Word2003制作日历

  如何通过Word2003制作日历 有时候很多场合会应用到日历,人们也希望自己动手制作一个日历,那么如何通过word2003来打造自己的日历呢,下面一起来看看. 1.新建一个word文档, 如下图1;右侧的导航栏中找到"本机上的模板",即根据本机的模板来创建,如下图2; 2.点击打开本机模板,出现模板对话框,如下图1,找到"其它文档"选项卡,从中选择"日历向导",如下图2,选择好后,点击"确定"; 3.系统自动进入日历向导;