PHP编写简易日历

项目运行界面如下:

代码如下:

<?php
header("content-type:text/html;charset=utf-8;");
    //修改页面编码
    //如果没有传入年份则获取当前系统年份
    $year=isset($_GET['y'])?$_GET['y']:date('Y');
    $y=date('Y');//在初始化年份时使用
    //如果没有传入月份则获取当前系统月份
    $month=isset($_GET['m'])?$_GET['m']:date('m');
    $m=date('m');//在初始化月份时使用
    //获取当前是那一天
    $day=date('d');
    //获取当前月有多少天
    $days=date('t',strtotime("{$year}-{$month}-1"));//补全日期后即可使用strtotime转换为秒数了
    //当前1号是星期几
    $week=date('w',strtotime("{$year}-{$month}-1"));
    //得到当前日期是星期几并转为星期几的汉字格式
    $tweek=date('w',strtotime("{$year}-{$month}-{$day}"));
    switch($tweek){
        case 0:$zweek='日';
        break;
        case 1:$zweek='一';
        break;
        case 2:$zweek='二';
        break;
        case 3:$zweek='三';
        break;
        case 4:$zweek='四';
        break;
        case 5:$zweek='五';
        break;
        case 6:$zweek='六';
        break;
    }
    
    //输出表头
    echo "<div style='margin:0 auto; width:700px;text-align: center;'>";
        echo "<h2>{$year}年{$month}月{$day}日星期{$zweek}</h2>";
        //输出日期表格
        echo "<table border=1px  style='width:700px;height:260px;text-align: center;'>";
        echo "<tr>";
        echo "<th>周日</th>";
        echo "<th>周一</th>";
        echo "<th>周二</th>";
        echo "<th>周三</th>";
        echo "<th>周四</th>";
        echo "<th>周五</th>";
        echo "<th>周六</th>";
        echo "</tr>";

        //铺表格
        for($i=1-$week;$i<=$days;){
            echo "<tr>";
            for($j=0;$j<7;$j++){
                if($i>$days || $i<=0){
                    echo "<td>&nbsp;</td>";
                }else{
                    if($i==$day){
                        echo "<td style='color:red;border:3px ridge yellow'>".$i."</td>";
                    }else{
                    echo "<td>{$i}</td>";
                    }
                }
                $i++;
            }
            echo "</tr>";
        }

        echo "</table>";
        //实现上一年下一年,月份也会跟随刷新
        $preyears=$year-1;
        $nextyears=$year+1;
        //实现上一月和年份跟随的变动
        if($month==1){
            $premonth = 12;
            $preyear = $year - 1;
        }else{
            $premonth = $month-1;
            $preyear = $year;
        }

        //实现下一月和年份跟随的变动
        if($month==12){
            $nextmonth = 1;
            $nextyear = $year + 1;
        }else{
            $nextmonth = $month + 1;
            $nextyear = $year;
        }
        //上一年、下一年的实现
        echo "<a href='{$_SERVER["PHP_SELF"]}?y={$preyears}&m={$month}'>上一年</a>";
        echo "<a href='{$_SERVER["PHP_SELF"]}?y={$nextyears}&m={$month}'>下一年</a>";
        echo "<br>";
        //上一月、下一月的实现
        echo "<a href='{$_SERVER["PHP_SELF"]}?y={$preyear}&m={$premonth}'>上个月</a>";
        echo "<a href='{$_SERVER["PHP_SELF"]}?y={$nextyear}&m={$nextmonth}'>下个月</a>";
        echo "<br>";
        //返回今天
        echo "<a href='{$_SERVER["PHP_SELF"]}?y={$y}&m={$m}'>返回今天</a>";
    echo "</div>";

代码都有注释,比较好懂!

喜欢的可以关注收藏一波!

转载于:https://www.cnblogs.com/xiaogou/p/9036846.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值