php实现日历周末变红
使用PHP实现日历周末日期变红
在PHP中实现日历周末日期变红的功能,可以通过判断日期是否为周六或周日,然后为该日期添加特定的CSS样式。以下是一个完整的实现方法:
创建日历函数
function generateCalendar($year, $month) {
$firstDay = mktime(0, 0, 0, $month, 1, $year);
$daysInMonth = date('t', $firstDay);
$dayOfWeek = date('w', $firstDay);
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>';
echo '<tr>';
for ($i = 0; $i < $dayOfWeek; $i++) {
echo '<td></td>';
}
for ($day = 1; $day <= $daysInMonth; $day++) {
$currentDay = mktime(0, 0, 0, $month, $day, $year);
$dayOfWeek = date('w', $currentDay);
$style = '';
if ($dayOfWeek == 0 || $dayOfWeek == 6) {
$style = 'style="color: red;"';
}
echo "<td $style>$day</td>";
if ($dayOfWeek == 6) {
echo '</tr><tr>';
}
}
echo '</tr>';
echo '</table>';
}
调用日历函数
generateCalendar(date('Y'), date('n'));
使用CSS样式
可以在HTML头部添加CSS样式来控制周末日期的外观:
<style>
.weekend {
color: red;
font-weight: bold;
}
</style>
然后在PHP代码中使用这个类:
$class = '';
if ($dayOfWeek == 0 || $dayOfWeek == 6) {
$class = 'class="weekend"';
}
echo "<td $class>$day</td>";
完整示例代码
<?php
function generateCalendar($year, $month) {
$firstDay = mktime(0, 0, 0, $month, 1, $year);
$daysInMonth = date('t', $firstDay);
$dayOfWeek = date('w', $firstDay);
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>';
echo '<tr>';
for ($i = 0; $i < $dayOfWeek; $i++) {
echo '<td></td>';
}
for ($day = 1; $day <= $daysInMonth; $day++) {
$currentDay = mktime(0, 0, 0, $month, $day, $year);
$dayOfWeek = date('w', $currentDay);
$style = '';
if ($dayOfWeek == 0 || $dayOfWeek == 6) {
$style = 'style="color: red;"';
}
echo "<td $style>$day</td>";
if ($dayOfWeek == 6) {
echo '</tr><tr>';
}
}
echo '</tr>';
echo '</table>';
}
generateCalendar(date('Y'), date('n'));
?>
注意事项
date('w')函数返回星期几的数字表示,0表示周日,6表示周六mktime()函数用于创建时间戳date('t')返回指定月份的天数- 表格布局可以根据需要调整CSS样式
- 这种方法适用于公历日历,如需其他历法需要相应调整







