当前位置:首页 > PHP

php实现日历周末变红

2026-01-29 05:22:46PHP

实现日历周末变红的方法

使用PHP实现日历中周末日期显示为红色,可以通过判断日期是否为周六或周日,然后应用CSS样式来实现。以下是具体步骤:

获取当前月份的天数和第一天是星期几

$year = date('Y');
$month = date('m');
$days_in_month = date('t', mktime(0, 0, 0, $month, 1, $year));
$first_day = date('w', mktime(0, 0, 0, $month, 1, $year));

生成日历表格

echo '<table border="1">';
echo '<tr><th>Sun</th><th>Mon</th><th>Tue</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th></tr>';
$day_count = 1;
echo '<tr>';
for ($i = 0; $i < 7; $i++) {
    if ($i < $first_day) {
        echo '<td></td>';
    } else {
        $current_date = "$year-$month-$day_count";
        $day_of_week = date('w', strtotime($current_date));
        $style = ($day_of_week == 0 || $day_of_week == 6) ? 'style="color:red;"' : '';
        echo "<td $style>$day_count</td>";
        $day_count++;
    }
}
echo '</tr>';

填充剩余日期

while ($day_count <= $days_in_month) {
    echo '<tr>';
    for ($i = 0; $i < 7; $i++) {
        if ($day_count > $days_in_month) {
            echo '<td></td>';
        } else {
            $current_date = "$year-$month-$day_count";
            $day_of_week = date('w', strtotime($current_date));
            $style = ($day_of_week == 0 || $day_of_week == 6) ? 'style="color:red;"' : '';
            echo "<td $style>$day_count</td>";
            $day_count++;
        }
    }
    echo '</tr>';
}
echo '</table>';

使用CSS样式优化

可以在HTML头部定义CSS样式,使代码更清晰:

<style>
    .weekend {
        color: red;
    }
</style>

然后在PHP代码中动态添加类:

php实现日历周末变红

$day_of_week = date('w', strtotime($current_date));
$class = ($day_of_week == 0 || $day_of_week == 6) ? 'weekend' : '';
echo "<td class='$class'>$day_count</td>";

完整示例代码

<?php
$year = date('Y');
$month = date('m');
$days_in_month = date('t', mktime(0, 0, 0, $month, 1, $year));
$first_day = date('w', mktime(0, 0, 0, $month, 1, $year));
?>
<style>
    .weekend {
        color: red;
    }
    table {
        border-collapse: collapse;
    }
    td, th {
        padding: 8px;
        text-align: center;
    }
</style>
<table border="1">
    <tr>
        <th>Sun</th><th>Mon</th><th>Tue</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th>
    </tr>
    <tr>
        <?php
        $day_count = 1;
        for ($i = 0; $i < 7; $i++) {
            if ($i < $first_day) {
                echo '<td></td>';
            } else {
                $current_date = "$year-$month-$day_count";
                $day_of_week = date('w', strtotime($current_date));
                $class = ($day_of_week == 0 || $day_of_week == 6) ? 'weekend' : '';
                echo "<td class='$class'>$day_count</td>";
                $day_count++;
            }
        }
        ?>
    </tr>
    <?php
    while ($day_count <= $days_in_month) {
        echo '<tr>';
        for ($i = 0; $i < 7; $i++) {
            if ($day_count > $days_in_month) {
                echo '<td></td>';
            } else {
                $current_date = "$year-$month-$day_count";
                $day_of_week = date('w', strtotime($current_date));
                $class = ($day_of_week == 0 || $day_of_week == 6) ? 'weekend' : '';
                echo "<td class='$class'>$day_count</td>";
                $day_count++;
            }
        }
        echo '</tr>';
    }
    ?>
</table>

注意事项

  • 代码中的date('w')返回星期几的数字,0表示周日,6表示周六。
  • 可以根据需要调整CSS样式,比如改变字体大小、背景色等。
  • 如果需要显示其他月份的日历,可以修改$year$month变量的值。

标签: 变红日历
分享给朋友:

相关文章

vue表格实现日历

vue表格实现日历

Vue 表格实现日历的方法 基础表格结构 使用 el-table 或原生 HTML 表格,通过 v-for 循环生成日历格子。月份天数通过 new Date() 计算,动态渲染表格内容。 &…

vue实现全年日历功能

vue实现全年日历功能

实现全年日历功能 在Vue中实现全年日历功能,可以通过组合多个月份日历组件或使用第三方库来简化开发。以下是两种常见方法: 使用第三方库(如FullCalendar) 安装FullCalendar V…

vue实现钉钉日历

vue实现钉钉日历

使用 Vue 实现钉钉日历功能 安装依赖 需要安装 v-calendar 或 fullcalendar-vue 等日历库。以 v-calendar 为例: npm install v-calenda…

css日历制作

css日历制作

CSS日历制作方法 使用HTML和CSS创建一个简单的日历布局,可以通过以下方式实现: HTML结构 <div class="calendar"> <div class="m…

jquery日历插件

jquery日历插件

以下是几款流行的 jQuery 日历插件推荐及其特点,适用于不同场景的需求: FullCalendar 功能强大的开源日历插件,支持月、周、日视图,可拖拽事件和订阅外部数据源。适合需要复杂日程管理的…

uniapp日历选择器

uniapp日历选择器

uniapp日历选择器实现方法 使用uni-calendar插件 uni-calendar是uniapp官方推荐的日历组件,支持单选、多选、范围选择等功能。安装后可直接在页面中使用。 <tem…