如何根据PHP计算输出的时间间隔值修改HTML表格行背景颜色
问题原因
你之前的实现存在两个核心错误:
- 变量取值逻辑错误:你判断用的
$interval是从$array_select数组中读取的,和前面计算时间差得到的DateInterval对象完全无关 - 比较逻辑错误:时间格式化后的字符串不能直接用来做大小比较,
DateInterval对象也无法直接和字符串对比,这类判断必须转成可量化的数值(比如总秒数)再执行
正确实现代码
1. 计算时间差同时生成行样式
<?php $datetime1 = new DateTime($rows['activation_time']); $datetime2 = new DateTime($rows['systime']); $interval = $datetime1->diff($datetime2); // 换算时间差总秒数,5分钟等于300秒 $total_seconds = $interval->days * 86400 + $interval->h * 3600 + $interval->i * 60 + $interval->s; if ($total_seconds >= 300) { $tr_style = 'style="background-color:#FF0000; text-align: center;border-color: #999999"'; } else { $tr_style = 'style="background-color:#009933; text-align: center;border-color: #999999"'; } ?>
2. 把样式应用到表格行
将生成的$tr_style输出到对应<tr>标签的属性位置即可:
<tr <?php echo $tr_style; ?>> <td><?php echo $interval->format(' %H:%i:%s'); ?></td> <!-- 其他表格列代码 --> </tr>
内容的提问来源于stack exchange,提问作者Kiara
相关产品推荐
相关产品推荐

