You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在日历中高亮单个单元格且不影响表格正常对齐?

问题根因

对齐错位的核心原因是:高亮生日日期的逻辑分支中,遗漏了对$day_count变量的累加。
你在输出生日的<td>标签后,直接通过continue跳过了后续的$day_count++逻辑,导致每周7天的计数少了1,后续的单元格排版就会整体偏移。另外你写了两个完全重复的if ($day_num==$day_num_birthday)判断,属于冗余逻辑可以合并。

修复后代码

$day_num = 1;
$day_num_birthday = 26;
$birth_month =  7;
if ($month == $birth_month) {
    while ($day_num <= $days_in_month) {
        if ($day_num == $day_num_birthday) {
            // 生日高亮输出
            echo '<td bgcolor="red">' . $day_num . '</td>';
        } else {
            // 普通日期输出
            echo '<td>' . $day_num . '</td>';
        }
        // 不管是不是生日,都要累加日期计数和周计数
        $day_num++;
        $day_count++;
        // 满7天换行
        if ($day_count > 7) {
            echo '</tr><tr>';
            $day_count = 1;
        }
    }
}

可选优化

bgcolor属于已被废弃的HTML属性,建议换成CSS样式实现高亮,兼容性和自定义灵活度更高:

echo '<td style="background-color: red; color: #fff;">' . $day_num . '</td>';

内容的提问来源于stack exchange,提问作者Snooky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 02:18:05