当前位置:首页 > PHP

php实现日历周末变红

2026-02-14 03:32:04PHP

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

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

php实现日历周末变红

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

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

php实现日历周末变红

$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类来控制样式:

<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样式来改变颜色的深浅或其他视觉效果。

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

相关文章

vue日历表格实现

vue日历表格实现

实现Vue日历表格的基本步骤 使用Vue实现日历表格需要处理日期数据生成、渲染和交互逻辑。以下是核心实现方法: 安装依赖(可选) 若需复杂功能可引入date-fns或dayjs等日期库: npm…

vue实现日历方案

vue实现日历方案

vue实现日历方案 使用第三方库(推荐方案) 推荐使用成熟的日历组件库,如v-calendar或fullcalendar-vue,它们提供丰富的功能和定制选项。 安装v-calendar:…

vue实现多选日历

vue实现多选日历

Vue 实现多选日历 使用 Vue 实现多选日历功能可以借助现有的日历库或手动构建。以下是两种常见方法: 使用第三方库(如 V-Calendar) 安装 V-Calendar 库: npm ins…

vue滚动实现日历组件

vue滚动实现日历组件

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

react实现日历

react实现日历

使用 React 实现日历 日历组件在 Web 应用中常用于日期选择、事件展示等场景。以下是几种实现日历的常见方法: 使用第三方库(如 react-calendar) 安装 react-calend…

js实现日历控件

js实现日历控件

实现日历控件的基本思路 日历控件通常需要展示一个月的日期表格,并允许用户选择日期。核心功能包括日期渲染、导航(上一月/下一月)和日期选择。 基础HTML结构 创建一个简单的HTML结构,包含…