当前位置:首页 > PHP

php实现日历周末变红

2026-02-14 03:32:04PHP

PHP实现日历周末变红的方法

要实现日历中周末日期显示为红色,可以通过PHP的日期函数判断当前日期是否为周六或周日,并添加相应的CSS样式。

获取当前月份的天数和星期信息

使用date()cal_days_in_month()函数获取当前月份的信息:

$year = date('Y');
$month = date('m');
$daysInMonth = cal_days_in_month(CAL_GREGORIAN, $month, $year);
$firstDay = date('N', strtotime("$year-$month-01"));

生成日历表格并标记周末

创建一个HTML表格,遍历每一天,判断是否为周末:

echo '<table border="1">';
echo '<tr><th>Mon</th><th>Tue</th><th>Wed</th><th>Thu</th><th>Fri</th><th style="color:red;">Sat</th><th style="color:red;">Sun</th></tr>';

$dayCount = 1;
echo '<tr>';
for ($i = 1; $i < $firstDay; $i++) {
    echo '<td></td>';
}

for ($day = 1; $day <= $daysInMonth; $day++) {
    $weekDay = date('N', strtotime("$year-$month-$day"));
    $style = ($weekDay >= 6) ? 'style="color:red;"' : '';
    echo "<td $style>$day</td>";

    if ($weekDay == 7 && $day != $daysInMonth) {
        echo '</tr><tr>';
    }
}

echo '</tr>';
echo '</table>';

使用CSS类替代内联样式

更推荐的做法是使用CSS类来控制样式:

php实现日历周末变红

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

<?php
// 在PHP代码中使用
$class = ($weekDay >= 6) ? 'weekend' : '';
echo "<td class='$class'>$day</td>";
?>

完整代码示例

<?php
$year = date('Y');
$month = date('m');
$daysInMonth = cal_days_in_month(CAL_GREGORIAN, $month, $year);
$firstDay = date('N', strtotime("$year-$month-01"));
?>

<style>
    .weekend {
        color: red;
        font-weight: bold;
    }
    table {
        border-collapse: collapse;
    }
    th, td {
        padding: 8px;
        text-align: center;
        border: 1px solid #ddd;
    }
</style>

<table>
    <tr>
        <th>Mon</th>
        <th>Tue</th>
        <th>Wed</th>
        <th>Thu</th>
        <th>Fri</th>
        <th class="weekend">Sat</th>
        <th class="weekend">Sun</th>
    </tr>
    <tr>
        <?php
        for ($i = 1; $i < $firstDay; $i++) {
            echo '<td></td>';
        }

        for ($day = 1; $day <= $daysInMonth; $day++) {
            $weekDay = date('N', strtotime("$year-$month-$day"));
            $class = ($weekDay >= 6) ? 'weekend' : '';
            echo "<td class='$class'>$day</td>";

            if ($weekDay == 7 && $day != $daysInMonth) {
                echo '</tr><tr>';
            }
        }
        ?>
    </tr>
</table>

这种方法会生成一个完整的月份日历,所有周六和周日的日期都会显示为红色。可以根据需要调整CSS样式来改变颜色的深浅或其他视觉效果。

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

相关文章

js 实现日历

js 实现日历

实现日历的基本思路 日历的核心功能是展示日期,并允许用户进行日期选择或导航。JavaScript 可以动态生成日历的 HTML 结构,并处理用户交互逻辑。 基础日历结构 日历通常包含头部(显示月份和…

vue日历实现方案

vue日历实现方案

vue日历实现方案 基于第三方库(如FullCalendar) 安装FullCalendar及其Vue适配器: npm install @fullcalendar/vue @fullcale…

vue滚动实现日历组件

vue滚动实现日历组件

实现思路 基于Vue实现滚动日历组件的核心在于动态生成日期数据,并通过CSS和触摸事件实现平滑滚动效果。关键在于处理日期计算、渲染优化和交互逻辑。 基础结构设计 <template&g…

react实现携程日历

react实现携程日历

实现携程日历的React组件 创建一个类似携程的日历组件需要处理日期选择、区间高亮、禁用日期等逻辑。以下是关键实现步骤: 日期选择与区间高亮 使用date-fns库处理日期操作,实现开始/结束日期选…

react实现日历插件

react实现日历插件

实现日历插件的核心步骤 安装依赖 使用react-datepicker或@mui/x-date-pickers等现成库快速实现日历功能。例如: npm install react-datepicke…

react实现日历翻页效果

react实现日历翻页效果

实现日历翻页效果的核心思路 日历翻页效果通常涉及日期数据的动态切换和动画过渡。React中可通过状态管理日期数据,结合CSS动画或第三方动画库实现视觉翻页效果。 基础实现步骤 状态管理 使用Reac…