如何将负天数替换为EXPIRED显示?PHP代码求助
解决方法:负数天数显示EXPIRED
嘿,我来帮你搞定这个需求!你的代码已经完成了核心的天数计算,只需要添加一个简单的条件判断就能实现当天数为负时显示EXPIRED的效果啦。
步骤说明
- 保留你原有的日期差计算逻辑(我帮你简化了一点冗余的写法)
- 添加条件判断:如果计算出的
$days小于0,就把显示内容设为EXPIRED,否则保留天数数值
修改后的完整代码
// 获取当前时间(你原注释写的Database date应该是笔误,这里是当前时间哦) $dbDate = strtotime(date('Y-m-d H:i:s')); // 转换截止日期为时间戳 $endDate = strtotime($result['duedate']); // 计算时间差(秒数) $diff = $endDate - $dbDate; // 转换为天数 $days = intval($diff / (3600 * 24)); // 核心判断逻辑:负数天数显示EXPIRED $displayResult = $days < 0 ? 'EXPIRED' : $days; // 输出结果 echo $displayResult;
可选的if-else写法(更直观)
如果你觉得三元运算符不够直观,也可以用标准的if-else语句实现同样的效果:
$displayResult = ''; if ($days < 0) { $displayResult = 'EXPIRED'; } else { $displayResult = $days; }
小优化提示
你原代码里strtotime("" . $result['duedate'] . "")的写法有点冗余,直接用strtotime($result['duedate'])就可以啦,因为strtotime可以直接处理字符串类型的日期,没必要拼接空字符串。
内容的提问来源于stack exchange,提问作者BlueMoutain
相关产品推荐
相关产品推荐

