PHP实现简单万年历

这篇博客展示了如何使用PHP实现一个简单的万年历功能。通过获取当前年份和月份,计算出当月的天数和首日是星期几,并提供上一月和下一月的链接。内容包括一个表格,展示每一天及其对应的星期。用户可以点击链接在不同月份之间切换。
<?php
header("content-type:text/html;charset=utf-8");
/**
 * 实例 : 万年历案例
 * 需求:
 *  1 几年 几月 几日
 *  2 周日-周六
 *  3 一号是星期几
 *  4 这个月有多少天
 *  5 下一年和上一年
 *  6 下一月和上一月
 *
 */

echo "<center>";
//获取当前年
$year = $_GET['y']?$_GET['y']:date("Y");
//获取当前月
$month = $_GET['m']?$_GET['m']:date("m");
//获取当前月多少天
$days = date('t',strtotime("{$year}-{$month}-1"));
//当前1号是周几
$week = date('w',strtotime("{$year}-{$month}-1"));

//所有内容居中

//输出表头
echo "<h2>{$year}{$month}月</h2>";


//实现上一年和上一月(判断,如果这个月是1的话,那么上个月就是12,上个月的年份就是这一年减去1)
if($month == 1){
    $prevyear = $year-1;
    $prevmonth = 12;
}else{
    $prevyear = $year;
    $prevmonth = $month-1;
}

//实现下一年和下一月(判断,如果这个月是12的话,那么下个月就是1,下个月的年份就是这一年加上1)
if($month == 12){
    $nextyear = $year+1;
    $nextmonth = 1;
}else{
    $nextyear = $year;
    $nextmonth = $month+1;
}

//输出上一月和下一月按钮
echo "<a href='phpTest27.php?y={$prevyear}&m={$prevmonth}'>上一月</a>|";
echo "<a href='phpTest27.php?y={$nextyear}&m={$nextmonth}'>下一月</a>";


echo "<br>";
echo "<br>";
//输出日期表格
echo "<table width='600px'; border='1px'>";

echo "<tr>";
echo "<td>星期日</td>";
echo "<td>星期一</td>";
echo "<td>星期二</td>";
echo "<td>星期三</td>";
echo "<td>星期四</td>";
echo "<td>星期五</td>";
echo "<td>星期六</td>";
echo "</tr>";

//铺表格(外部打印的数据要从星期几开始)
for ($i = 1-$week;$i<=$days;){
    echo  "<tr>";
    for($j = 0;$j<7;$j++){
        //判断,如果要输出的值为负数,或者大于每个月的天数,就输出空
        if($i<1||$i>$days){
            echo "<td></td>";
        }else{
        echo "<td>{$i}</td>";
        }
        $i++;
    }
    echo  "</tr>";
}
echo "</table>";


echo "</center>";


?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值