【PHP】制作日历

本期本博主将讲述两种利用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的前端世界两位大神

未经允许不得转发!!!

时间: 2024-10-20 12:46:28

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

利用avalon+原生js来制作日历空间(一)

url:http://zjingwen.github.io/SetTimeOutGoBlog/funui/fundate/index.html (如果打开过慢,或者打不开,原因你懂得.)一.思路 1.制作日历这种ui组件,我们第一步需要拿到的就是数据,我们需要知道例如今天属于,那一年.那一月.星期几. 2.数据的呈现形式应该是什么样子的,以我制作的这个为例,理性分析,以图为例,6X7的格子,我们要获得42个数据,其中当月数据占数组的中间,下月数据占数组的尾部,上月数据占数组的头部. 那么问题来了

CSS3制作日历

目标是制作如下面DEMO显示的一个日历效果: HTML Markup 先来看看其结构: <div class="calendar"> <span class="year">2012</span> <span class="day">24</span> <span class="month">January</span> </div>

用html+css+javascript制作日历

这是做好后的效果.不是很美观,还可以进一步完善. html+css代码如下: <!DOCTYPE html> <html> <head> <title>日历</title> <style type="text/css"> #div1{ width:425px; height:420px; border:1px solid gray; } #div2{ width: 390px; height: 390px; mar

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

呀!忙碌的每一天,都忘记了明天就是我们愉快周末了.今天没有朋友的闲聊的话,明天处在绷紧的状态呢!还有朋友提到,所有今天来跟大家分享一下用java来编写日历表,累了想休息了的时候,打开看看,还有几天到周末!那么我们来看一下代码,具体怎么实现吧! public class Demo6 { public static void main(String[] args) { Demo6 demo = new Demo6();               demo.show(2016,11);  //输入年

日历代码

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <style> body{ background-color:#96CECF; } #calendar td{ width:20px; height:20px; font-size:12px; line-height:20px; t

CSS3制作

目标是制作如下面DEMO显示的一个日历效果: HTML Markup 先来看看其结构: <div class="calendar"> <span class="year">2012</span> <span class="day">24</span> <span class="month">January</span> </div>

NSDate增加分类 计算某年某月某日

#import <Foundation/Foundation.h> @interface NSDate (Addition) /** *某一天在当月多少号 */ - (NSInteger)daysOfCurrentMonth; /** *  某月第一天周几 * */ - (NSInteger)weekOfFirstDayInCurrentMonth; - (NSInteger)day; - (NSInteger)month; - (NSInteger)year; - (NSString *)d

php必须知道的300个问题-目录

php必须知道的300个问题 第1章 PHP开发规范与入门要点 问题1 如何在Windows下配置PHP开发环境? 答案 问题2 如何在Linux下配置PHP开发环境? 问题3 如何搭建IIS+PHP+MySQL环境? 问题4 PHP集成开发环境的特点有哪些? 问题5 如何应用AppServ搭建PHP开发环境? 问题6 如何通过XAMPP配置PHP开发环境? 问题7 XAMPP——Linux版PHP集成化安装包 问题8 Apache配置文件全解 问题9 PHP.INI配置文件全解 问题10 Ap

制作可视化日历,输入日期得到当月 月历表

import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner; /** * 制作可视化日历,输入日期得到当月 月历表 * */ public class CalendarDemo { public static voi