php实现日历周末变红
实现日历周末变红的方法
在PHP中实现日历并将周末日期显示为红色,可以通过以下步骤完成。这里提供一个完整的代码示例,展示如何生成一个月的日历,并将周六和周日标记为红色。
获取当前月份的第一天和最后一天
使用date函数获取当前月份的第一天和最后一天,以便确定日历的范围。
$firstDayOfMonth = date('Y-m-01');
$lastDayOfMonth = date('Y-m-t');
$totalDays = date('t', strtotime($firstDayOfMonth));
生成日历表格
创建一个HTML表格,遍历当前月份的所有天数,并检查每一天是否为周末(周六或周日)。
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>';
$currentDay = 1;
$firstDayOfWeek = date('w', strtotime($firstDayOfMonth));
echo '<tr>';
for ($i = 0; $i < $firstDayOfWeek; $i++) {
echo '<td></td>';
}
for ($i = $firstDayOfWeek; $i < 7; $i++) {
$dayOfWeek = date('w', strtotime("$firstDayOfMonth + " . ($currentDay - 1) . " days"));
$style = ($dayOfWeek == 0 || $dayOfWeek == 6) ? 'color: red;' : '';
echo "<td style='$style'>$currentDay</td>";
$currentDay++;
}
echo '</tr>';
while ($currentDay <= $totalDays) {
echo '<tr>';
for ($i = 0; $i < 7 && $currentDay <= $totalDays; $i++) {
$dayOfWeek = date('w', strtotime("$firstDayOfMonth + " . ($currentDay - 1) . " days"));
$style = ($dayOfWeek == 0 || $dayOfWeek == 6) ? 'color: red;' : '';
echo "<td style='$style'>$currentDay</td>";
$currentDay++;
}
echo '</tr>';
}
echo '</table>';
完整代码示例
以下是完整的PHP代码,生成一个月的日历并将周末日期显示为红色。

<?php
$firstDayOfMonth = date('Y-m-01');
$lastDayOfMonth = date('Y-m-t');
$totalDays = date('t', strtotime($firstDayOfMonth));
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>';
$currentDay = 1;
$firstDayOfWeek = date('w', strtotime($firstDayOfMonth));
echo '<tr>';
for ($i = 0; $i < $firstDayOfWeek; $i++) {
echo '<td></td>';
}
for ($i = $firstDayOfWeek; $i < 7; $i++) {
$dayOfWeek = date('w', strtotime("$firstDayOfMonth + " . ($currentDay - 1) . " days"));
$style = ($dayOfWeek == 0 || $dayOfWeek == 6) ? 'color: red;' : '';
echo "<td style='$style'>$currentDay</td>";
$currentDay++;
}
echo '</tr>';
while ($currentDay <= $totalDays) {
echo '<tr>';
for ($i = 0; $i < 7 && $currentDay <= $totalDays; $i++) {
$dayOfWeek = date('w', strtotime("$firstDayOfMonth + " . ($currentDay - 1) . " days"));
$style = ($dayOfWeek == 0 || $dayOfWeek == 6) ? 'color: red;' : '';
echo "<td style='$style'>$currentDay</td>";
$currentDay++;
}
echo '</tr>';
}
echo '</table>';
?>
代码说明
- 获取月份信息:使用
date('Y-m-01')获取当前月份的第一天,date('Y-m-t')获取最后一天,date('t')获取月份的总天数。 - 生成表格:创建一个HTML表格,表头为周日到周六。
- 填充日期:根据月份的第一天是星期几,填充空白单元格。随后填充日期,并检查是否为周末(周日为0,周六为6),如果是则应用红色样式。
通过以上方法,可以轻松实现一个PHP日历,并将周末日期显示为红色。






