用PHP写一个简单的日历

作者:黑马

出处:

日历被广泛应用于网络日志。作为网络日志导航的一种实现方式,我们不需要太复杂的日历,有年、月、日、周日即可,本文要讨论的就是这类简单的日记。

一个日历在布局上要求日期和星期相对应,可以用表格来实现。一周有七天,我们将写一个7×N的表格来构造我们的日历。星期将是固定地写在表格的某一行(通常为第一行或第二行)。为此,我们首先需要判断当前要处理的月份的第一天是星期几以便确定第一天写在表格第二行或第三行的第几个单元格。

确定某年的某个月有多少天,在PHP中可以简单地用date()函数取得。比如,要取得此时所属月份的日期总数,只需要简单的打印 date("t") 即可。而要取得任意年任何月份的天数,需要借用mktime()函数,mktime()返回一个从UNIX时代(1970年1月1日)开始以来的秒数,它的格式如下:mktime(时,分,秒,月,日,年)。比如,mktime(0,0,0,2,22,2006)返回从1970年1日1日到2006年2月22日的秒数。值得注意的是,mktime()函数所能处理的日历范围从1970年开始,到2037年止(Windows XP的日期从(1980年到2099年),这意味着我们制作的PHP日历是有年份限制的。

知道要处理的月份的第一天为星期几,就可以开始制作日历了。比如2006年2月1日为星期三,日期将从表格中要显示日期的第一行的第四个单元格写起,直到写完当月的所有日期。前面说过,表格是7×N格式的,什么时候写

标签,什么时候写标签,以及最后一行应该合并多少个单元格,都必须考虑在内。可以考虑用取余数运算符号“%”来确定tr标签的起始:

$i%7=0 → 写

标签;

$i%7=6 → 写 标签;

表格的最后一行可能会存在一些空的单元格(正如写日期的第一行前面可能有空单元格一样),可以这么处理:通过计算余数,如果写完日期后还剩2个或以上单元格的就合并它们,只剩下一个的就写一个td标签,此部分请参考稍后提供的代码进行理解。

一个日历,年份和月份是动态变化的,可以简单地给年份和月份制作前进、后退链接,我们用一组三元运算符来确定链接取值,以下以年的倒退链接值为例加以简单说明:

$y_lnk1=$year<=1970?$year=1970:$year-1;

这句代码,先判断当前处理年($year)的年份是否小于等于1970年,如果成立,则把年定死在1970年上($year=1970),不再往前倒退,反之,如果当前处理年的年份大于1970年,则令该链接的值(即年份)倒退一年($year-1)。

其他的链接(年前进、月倒退、月前进)道理同上。

以下是整个日历的完整代码,使用时请把美元符号改为小角状态:";

print "< ".$year."年 > ";

print "< ".$month."月 >

";

for($i=0;$i<7;$i++) {

print "$wd_ar[$i] ";

}

print " ";

$tnum=$wd+date("t",mktime(0,0,0,$month,1,$year));

for($i=0;$i $date=$i+1;

if($i%7==0) print "

";

print "";

if($i>=$wd) print $date-$wd;

print " ";

if($i%7==6) print " ";

}

if($i%7<6 && $i%7>0) print " ";

if($i%7==6) print " ";

print "";

?>

代码非常简单,两个日期函数的灵活运用和简单的一些算法,就能完成一个日历的编写工作[@more@]

php设置一个日历,用PHP写一个简单的日历相关推荐

  1. 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

    给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1. JAVA: class So ...

  2. [廖雪峰python教程列表生成器练习]杨辉三角定义如下,把每一行看做一个list,试写一个generator,不断输出下一行的list

    杨辉三角定义如下: 1/ \1 1/ \ / \1 2 1/ \ / \ / \1 3 3 1/ \ / \ / \ / \1 4 6 4 1/ \ / \ / \ / \ / \ 1 5 10 10 ...

  3. python写一个系统-使用Python写一个量化股票提醒系统

    大家在没有阅读本文之前先看下python的基本概念, Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python由Guido van Rossum于1989年底发明,第一个公开 ...

  4. 实战!手把手教你如何编写一个Linux驱动并写一个支持物联网的LED演示demo

    目录 一.开发环境 二. 准备工作: 1. 创建一个项目工程目录 2. 创建输出与目标目录 3.头文件目录 4. 建立源代码src目录 5. 使用git管理你的项目 三.编写LED驱动 三.一 准备工 ...

  5. Writing a FilterUnloadCallback Routine for a Minifilter Driver 为一个微过滤驱动写一个过滤器卸载回调例程...

    一个文件系统微过滤驱动能可选择的注册一个 PFLT_FILTER_UNLOAD_CALLBACK类型的例程 作为微过滤驱动的 FilterUnloadCallback  例程.这个回调例程也被称为微过 ...

  6. 写一个函数取出php,写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名...

    写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名 例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php 直接先上方 ...

  7. 做一个好父亲,做一个好丈夫,做一个好女婿,做一个好学生,写一个好博客

    人活着会有很多标准在进行评价,为了这些评价,就需要作出时间上和精力上的取舍. 为了做一个好学生,我需要花很多时间在专业上,在论文阅读上,在各种实验上. 为了做一个好丈夫,我需要花很多时间照顾我怀孕8个 ...

  8. 网页中用PHP设计一个计算器,用PHP写一个计算器(附完整代码)_后端开发

    PHP作用域和文件夹操作示例_后端开发 php中的作用域有:变量作用域.静态变量.匿名函数use,函数内部不能访问函数外部的变量,但在匿名函数中,可以通过use将外部变量引入匿名函数中. 本篇文章介绍 ...

  9. 如何用python创建一个下载网站-如何写一个python脚本下载文件??

    脚本在最后,可以直接试用,相关的库可能需要自己安装 第一步,你需要获得网页上下载文件地址的列表 用浏览器查看页面源文件得到 /> 可以看到,这个格式是很清晰的,用xpath获得列表即可, 这部分 ...

最新文章

  1. pip 代理设置,坑爹的代理继续
  2. 韩宇:如何准备天池深度学习比赛?
  3. 差分隐私 python_主要开发语言为 Python/Rust:微软与哈佛大学合作开源差分隐私平台...
  4. web 全栈 学习 2 一个好的页面是如何炼成的
  5. ubuntu安装pytorch镜像修改及下载
  6. 在 ASP.NET Core 中使用 Serilog 使用 Fluentd 将日志写入 Elasticsearch
  7. 十六个字 一辈子学不完
  8. QML笔记-整合C++及单例模式管理QML中控件
  9. 慕课python就业班加微信_给初学python的朋友的一些忠告和建议
  10. Node开发知识概括
  11. mysql 事务 游标_mysql之——存储过程 + 游标 + 事务
  12. GitHub出现大量重复代码:JavaScript最严重
  13. android图片选择器实现说明
  14. JavaSE知识点:finalize,treeMap
  15. 静态库与动态库的制作
  16. first season twenty-second episode,the color(yellow) dream???
  17. 通过浏览器无法访问Hadoop管理页面
  18. 一款界面友好的思维导图软件MindMaster
  19. bilibili_api,仅用 3 行代码获取B站(弹幕、评论、用户)数据
  20. 【EI会议分享】2022年第三届智能制造与自动化前沿国际会议(CFIMA 2022)

热门文章

  1. 星辰小队针对于软件“星遇”的第二次10天冲刺——第2天
  2. 小程序实战篇(一)——车辆使用登记
  3. 也许错怪了skycn
  4. 基于php115课程辅助教学系统
  5. Discuz home模块解析(一)
  6. java集合 — — Map集合
  7. es文件新建ftp服务器,es文件浏览器 新建ftp服务器
  8. 信息安全需要c语言吗,以下哪些是需要在信息安全策略中进行描述的:()
  9. python控制本地音乐播放_Python:当音乐播放时,如何使语音控制工作?
  10. 网站打包成app,webapp在线打包工具推荐