当前位置:首页 > 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样式来改变颜色的深浅或其他视觉效果。

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

相关文章

vue实现日历

vue实现日历

Vue 实现日历组件 使用 Vue 实现日历组件可以通过自定义开发或借助第三方库完成。以下是两种常见方法: 方法一:自定义日历组件 创建基础日历结构,利用 Vue 的响应式特性动态渲染日期。核心逻…

css制作日历

css制作日历

使用CSS Grid布局制作日历 日历的布局适合使用CSS Grid实现,因其天然的行列结构。以下是一个基础日历的HTML和CSS代码: <div class="calendar">…

vue日历拖拽实现

vue日历拖拽实现

Vue 日历拖拽实现方案 使用 vue-draggable 库 安装依赖库: npm install vuedraggable 基础拖拽日历实现代码: <template> <…

基于vue实现日历

基于vue实现日历

实现基础日历结构 使用Vue的模板语法构建日历的HTML结构,通常包含星期标题和日期格子。月份切换按钮通过v-on绑定事件。 <template> <div class="ca…

vue实现钉钉日历

vue实现钉钉日历

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

react实现日历

react实现日历

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