使用PHP实现万年历功能的要点:

得到当前要处理的月份总共有多少天$days

得到当前要处理的月份的一号是星期几$dayofweek

$days的作用:知道要处理的月份共有多少天,就可以通过循环输出天数了

$dayofweek的作用:只有知道每个月的1号是星期几,才能知道在输出天数之前需要输出多少空格(空白)

最终效果图如下:

“万年历类”的代码如下:

代码如下:

/**

* PHP万年历

* @author Fly 2012/10/16

*/

class Calendar{

protected $_table;//table表格

protected $_currentDate;//当前日期

protected $_year; //年

protected $_month; //月

protected $_days; //给定的月份应有的天数

protected $_dayofweek;//给定月份的 1号 是星期几

/**

* 构造函数

*/

public function __construct()

{

$this->_table="";

$this->_year = isset($_GET["y"])?$_GET["y"]:date("Y");

$this->_month = isset($_GET["m"])?$_GET["m"]:date("m");

if ($this->_month>12){//处理出现月份大于12的情况

$this->_month=1;

$this->_year++;

}

if ($this->_month<1){//处理出现月份小于1的情况

$this->_month=12;

$this->_year--;

}

$this->_currentDate = $this->_year.'年'.$this->_month.'月份';//当前得到的日期信息

$this->_days = date("t",mktime(0,0,0,$this->_month,1,$this->_year));//得到给定的月份应有的天数

$this->_dayofweek = date("w",mktime(0,0,0,$this->_month,1,$this->_year));//得到给定的月份的 1号 是星期几

}

/**

* 输出标题和表头信息

*/

protected function _showTitle()

{

$this->_table="".$this->_currentDate."";

$this->_table.="";

$this->_table .="星期日";

$this->_table .="星期一";

$this->_table .="星期二";

$this->_table .="星期三";

$this->_table .="星期四";

$this->_table .="星期五";

$this->_table .="星期六";

$this->_table.="";

}

/**

* 输出日期信息

* 根据当前日期输出日期信息

*/

protected function _showDate()

{

$nums=$this->_dayofweek+1;

for ($i=1;$i<=$this->_dayofweek;$i++){//输出1号之前的空白日期

$this->_table.="&nbsp";

}

for ($i=1;$i<=$this->_days;$i++){//输出天数信息

if ($nums%7==0){//换行处理:7个一行

$this->_table.="$i

";

}else{

$this->_table.="$i";

}

$nums++;

}

$this->_table.="";

$this->_table.="

_year)."&m=".($this->_month-1)."'>上一月 ";

$this->_table.="_year)."&m=".($this->_month+1)."'>下一月";

}

/**

* 输出日历

*/

public function showCalendar()

{

$this->_showTitle();

$this->_showDate();

echo $this->_table;

}

}

$calc=new Calendar();

$calc->showCalendar();

效果还不错吧,小伙伴们还可以自己美化下,这里就不多做说明了。

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

php制作万年历的步骤_PHP制作万年历_php实例相关推荐

  1. php制作万年历的步骤_制作一个php万年历

    /** * 1.获取日期年和月,默认当前年份和月份 * 2.计算当前月份有多少天和本月1号是星期几 * 3.输出日期的头部信息 * 4.循环遍历输出输出天数 * 5.完成上一月和下一月链接 * * * ...

  2. 作品集制作方法与步骤(PS)

    文章目录 作品集制作方法与步骤 作品集制作方法与步骤 新建1920*1080画布,制作如:封面(A01.psd).个人介绍页(A02.psd).APP(B01.psd).后台(C01.psd) 不同的 ...

  3. hbuilderx制作简单网页_网页制作的基本步骤是怎样的?制作简单网页的具体操作有哪些呢?...

    网页制作的基本步骤是怎样的?制作简单网页的具体操作有哪些呢?如果是详细的网页制作,设计和制作一样关键.有可能是网页设计制作新手对简单网页制作设计的具体操作不太清楚.更别说设计详细的网页了.下面一起来看 ...

  4. python画spc控制图_SPC控制图的制作方法和步骤

    SPC 控制图的制作方法和步骤 一.控制图法的涵义 影响产品质量的因素很多,有静态因素也有动态因素,有没有一种方法能够即时监控产品的生产过程.及时 发现质量隐患, 以便改善生产过程, 减少废品和次品的 ...

  5. 简述计算机动画制作流程,Mg动画制作流程——六大步骤

    一个完整的mg动画制作流程是繁杂的,其中掺杂的细节很多,如果一个小小的细节没有做好,有可能就导致最终的动画成品展现效果不好,接下来就简要地罗列一下mg动画制作流程. Mg动画制作流程--六大步骤 Mo ...

  6. 企业怎么制作网站?怎么制作网站教程步骤

    企业情况下,企业制作网站会有一套合理的制作网站教程步骤.虽然任何企业制作网站都不会有固定的模式,但是遵循这些指导制作网站教程的步骤,至少可以提高企业建设网站的效率,同时也可以减少网站建设过程中出现的错 ...

  7. excel制作跨职能流程图_excel制作流程图的方法步骤图

    Excel中经常需要使用到制作流程图的技巧进行制作流程图方便读者一目了然,流程图具体该如何进行制作呢?下面是由学习啦小编分享的excel制作流程图的方法,以供大家阅读和学习. excel制作流程图的方 ...

  8. 怎么做成html网页,html网页制作的基本步骤?怎么用html做一个网页?

    html网页制作的基本步骤?怎么用html做一个网页?让我们试着制作一个简单的网页.希望你能跟着我们.只需要一分钟.现在你可能不知道尖括号"<>"和里面的字母是什么.别 ...

  9. 计算机课件制作教程ppt,电脑制作ppt详细步骤_新手制作ppt详细步骤图文教程

    ppt大家应该都不陌生了,我们日常办公时经常会需要制作ppt.可是对于新手来说,还不太清楚电脑制作ppt详细步骤.那么今天小编就为大家带来新手制作ppt详细步骤图文教程,一起来看看吧. 新手制作ppt ...

  10. YAGEO(国巨)旧电脑风扇制作风力发电机步骤详解 - 电动机控制电路图

    风力发电机的工作原理比较简单,风轮在风力的作用下旋转,它把风的动能转变为风轮轴的机械能,发电机在风轮轴的带动下旋转发电.广义地说,风能也是太阳能,所以也可以说风力发电机,是一种以太阳为热源,以大气为工 ...

最新文章

  1. MarkDown写blog(测试)
  2. idea 快捷键在方法上抛出异常
  3. MyEclipse 中修改JSP模板
  4. AD 画图 镜像翻转元器件
  5. 配置sql server 2000以允许远程访问
  6. javascript对象包含哪些要素_让人迷糊的JavaScript对象(Object一)
  7. 基于python的图像分割并计数
  8. ok计数器使用教程_Qt ModelView教程(二)——应用举例
  9. MySQL基础练习题(带答案)
  10. JavaScript基础知识总结(6张思维导图)
  11. BZOJ系列1406《[AHOI2007]密码箱》题解
  12. android Intent调用地图应用客户端
  13. 关于小米手机用微信会重启的问题
  14. TensorFlow之saved_model使用笔记
  15. 被老程序员压榨怎么办?我不想辞职
  16. 9款非常适合Sketchup的渲染插件以及优点介绍
  17. MATLAB app designer GUI设计
  18. walking机器人入门教程-视觉转激光建图-cartographer算法建图
  19. 根据Uniprot ID/PDB ID批处理获取蛋白质.pdb文件
  20. 阿里云盘下载与公测预约(最新)

热门文章

  1. W ndows10如何清理使用痕迹,Windows10怎么清除使用痕迹?
  2. 政府网站最新政策公告监控提醒
  3. 室外传播模型 -- 关于Hata模型及CCIR模型的介绍
  4. 计算机的上帝模式,win7开启上帝模式的详细使用教程
  5. 数百个 HTML5 例子学习 HT 图形组件 – 3D建模篇
  6. 考研复试问答(十二)
  7. 各种文件下载链接——自用
  8. 我的世界java怎么玩起床战争_我的世界起床战争新手怎么玩 起床战争中前期玩法教学...
  9. wifi mesh技术简介
  10. linux usb免驱麦克风,pyaudio检测不到USB 麦克风