php实现日历周末变红
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类来控制样式:
<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样式来改变颜色的深浅或其他视觉效果。






