本期本博主将讲述两种利用PHP制作日历的方法,由于PHP日期函数的便捷性,使得我们制作日历这一过程变得相当简单

问题描述:

1、取到当前日期,并着色显示;
2、根据当前日期,判断本月有多少天,一号是周几;
3、完成本月日历显示

方法一,自动取到当前日期,代码如下

date_default_timezone_set("PRC");

    $time = getdate();
$mday = $time["mday"];
$mon = $time["mon"];
$year = $time["year"]; if($mon==4||$mon==6||$mon==9||$mon==11){
$day = 30;
}elseif($mon==2){
if(($year%4==0&&$year%100!=0)||$year%400==0){
$day = 29;
}else{
$day = 28;
}
}else{
$day = 31;
} $w = getdate(mktime(0,0,0,$mon,1,$year))["wday"]; $date = function($day,$w){
echo "<table border='1'>";
echo "<tr><th>星期日</th><th>星期一</th><th>星期二</th><th>星期三</th><th>星期四</th><th>星期五</th><th>星期六</th></tr>";
$arr = array();
for($i=1;$i<=$day;$i++){
array_push($arr,$i);
}
if($w>=1&&$w<=6){
for($m=1;$m<=$w;$m++){
array_unshift($arr,"");
}
}
$n=0;
for($j=1;$j<=count($arr);$j++){
$n++;
if($n==1) echo "<tr>";
global $mday;
if($mday==$arr[$j-1]){
echo "<td width='80px' style='background-color: greenyellow;'>".$arr[$j-1]."</td>";
}else{
echo "<td width='80px'>".$arr[$j-1]."</td>";
} if($n==7){
echo "</tr>";
$n=0;
}
}
if($n!=7)echo "</tr>"; echo "</table>";
};
$date($day,$w);

运行结果如下

方法二,指定当前日期,代码如下

//此处为时间输入
echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当前时间戳为:";
echo $today=mktime(9,34,56,06,02,2017); echo "</br>";
echo "</br>"; $r=date("L",$today);//润平年
$w=date("N",$today);//星期
$m=date("n",$today);//月份
$d=date("j",$today);
if($m==1||$m==3||$m==5||$m==7||$m==8||$m==10||$m==12){
$days=31;
}elseif($m==4||$m==6||$m==9||$m==11){
$days=30;
}elseif($m==2){
if($r==1){
$days=29;
}else{
$days=28;
}
}else{
echo "日期有误!!!";
} $day=1;
$week=0;
$count=($days+$w)/7; echo "<table border='1' width='500'>";
echo <<<th
<tr style="background-color:#ccc;">
<th style="color:red;">星期天</th>
<th>星期一</th>
<th>星期二</th>
<th>星期三</th>
<th>星期四</th>
<th>星期五</th>
<th style="color:green;">星期六</th>
</tr>
th; for($i=0;$i<=$count;$i++){
echo "<tr>";
for($j=0;$j<7;$j++){
if(($week<$w)||($day>$days)){
echo "<td></td>";
$week++;
}else{
if($day==$d){
echo "<td bgcolor='green';>{$day}</td>";
$day++;
}else{
echo "<td>{$day}</td>";
$day++;
}
} }
if($day>$days){
break;
}
echo "</tr>";
}
echo "</table>"; echo "</br>"; echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当前时间为:";
echo date("Y-m-d H:i:s 星期N a",$today);

运行结果如下图

效果完美,而后在前两者的基础上稍加改进就可以得到万年历,PHP功能就是如此强大

代码实现感谢@浩神@Q的前端世界两位大神

未经允许不得转发!!!

【PHP】制作日历的更多相关文章

  1. CSS3制作日历

    目标是制作如下面DEMO显示的一个日历效果: HTML Markup 先来看看其结构: <div class="calendar"> <span class=&q ...

  2. 基于jQuery日历插件制作日历

    这篇文章主要介绍了基于jQuery日历插件制作日历的相关资料,需要的朋友可以参考下 来看下最终效果图吧: 是长得丑了一点,不要吐槽我-.- 首先来说说这个日历主要的制作逻辑吧: ·一个月份最多有31天 ...

  3. LayUI制作日历工作记录簿

    标题不知道该如何取,大概就是用Lay UI的Table,制作一个日历,在日历上可以添加每天的工作简记录.记录下LayUI Table的一些用法,一些值得探索的地方在于日历生成后,给周末加背景色,当天加 ...

  4. 用java制作日历,想休息的时候看一看离周末还有几天!

    呀!忙碌的每一天,都忘记了明天就是我们愉快周末了.今天没有朋友的闲聊的话,明天处在绷紧的状态呢!还有朋友提到,所有今天来跟大家分享一下用java来编写日历表,累了想休息了的时候,打开看看,还有几天到周 ...

  5. Word2010制作日历

    原文: https://www.toutiao.com/i6494876164157342222/ 最终效果: 设置页面纸张为"横向". 选择"页面布局"选项卡 ...

  6. swift 日历的制作

    制作日历步骤 1.日期数据的处理,这个可以 添加 extension 解决 extension NSDate{ /*几年几月 这个月的多少天*/ class func getDaysInMonth( ...

  7. CSS3制作

    目标是制作如下面DEMO显示的一个日历效果: HTML Markup 先来看看其结构: <div class="calendar"> <span class=&q ...

  8. PHP完成一个日历

    今天我们就用php中的数组合date 做一个日历. 先让我们回顾一下PHP里面的date . 1.时间戳:表示从计算机元年/UNIX纪年(0时区 1970/1/1 00:00:00)到当前事件的秒数. ...

  9. 零基础学Java(10)面向对象-使用LocalDate类完成日历设计

    前言 在我们完成这个日历设计前,需要了解Java中的预定义类LocalDate的一些用法 语法 LocalDate.now() // 2022-07-01 会构造一个新对象,表示构造这个对象时的日期. ...

随机推荐

  1. TCP协议详解---上

    TCP头格式 注意以下几点: TCP的包是没有IP地址的,那是IP层上的事.但是有源端口和目标端口. 一个TCP连接需要四个元组来表示是同一个连接(src_ip, src_port, dst_ip, ...

  2. angular控制器之间的传值

    每个controller都会有自己的scope,所有的scope都是属于 $rootScope的子或者子的子... 那么问题就好解决了,通过 $rootScope.$broadcast 广播的事件每个 ...

  3. numpy之索引和切片

    索引和切片 一维数组 一维数组很简单,基本和列表一致. 它们的区别在于数组切片是原始数组视图(这就意味着,如果做任何修改,原始都会跟着更改). 这也意味着,如果不想更改原始数组,我们需要进行显式的复制 ...

  4. 使用FileSystem自带的api读取hdfs中的文件

    博客搬家自https://my.oschina.net/itsyizu/blog/ 1. 创建hadoop MapReduce项目 输入项目名称 创建好的项目初始化状态如下 编写java类 impor ...

  5. (基础篇 走进javaNIO)第二章-NIO入门

    在本章巾,我们会分别对 JDK 的BIO ,NIO 和JDK 1.7 最新提供的 NI02.0的使用进行详细说明 ,通过流程图和代 码讲解,让大 家体会到随着 Ja va 1/0 类库的 不断发展和改 ...

  6. 在Spring、Hibernate中使用Ehcache缓存(2)

    这里将介绍在Hibernate中使用查询缓存.一级缓存.二级缓存,整合Spring在HibernateTemplate中使用查询缓存.,这里是hibernate3,使用hibernate4类似,不过不 ...

  7. React源码学习——ReactClass

    前言 之前一直在使用react做开发,但是对其内部的工作机制却一点儿都不了解,说白了就是一直在套api,毫无成就感.趁最近比较闲,对源码做了一番研究,并通过博客的方式做一些记录. 进入正题 通过编写自 ...

  8. TCP/UDP客户端

    Python 网络编程----模块socekt 在渗透测试的过程中,经常会遇到需要创建一个TCP客户端来连接服务器.发送垃圾数据.进行模糊测试活进行其他任务的情况. 简单的TCP客户端代码: #!/u ...

  9. 基于TF-IDF的新闻标签提取

    基于TF-IDF的新闻标签提取 1. 新闻标签 新闻标签是一条新闻的关键字,可以由编辑上传,或者通过机器提取.新闻标签的提取主要用于推荐系统中,所以,提取的准确性影响推荐系统的有效性.同时,对于将标签 ...

  10. Qt自定义标签按钮

    当你接触到Qt时,你会为它极为方便的跨平台方面感到吃惊,从而想尝试着使用Qt.渐渐地你会发现Qt自带的一些控件不能满足自己的需要,此时就需要我们自己定义一个属于自己的控件.总所周知,标签的风格设置类比 ...