PHP按日期时间显示文本功能异常(添加分钟判断后失效)求助
问题排查与修复
你的代码问题出在条件逻辑的错误组合上,导致分钟判断没有起到预期的限制作用。
问题分析
原代码里用||(逻辑或)连接了两个冗余分支:
(date('N') == 4 && date('G') == 16 && date('i') >= 00) || (date('N') == 4 && date('G') == 16 && date('i') <= 20)
第一个分支中date('i') >= 00对所有分钟(0-59)都成立,这会导致只要是周四16点,不管分钟是多少都会触发条件,完全违背了你想限制0-20分的初衷。如果测试时你不在周四16点的时间范围,自然不会显示文本,就会误以为是分钟判断失效。
修复后的代码
把重复的公共条件(周四、16点)提取出来,用&&连接分钟范围判断,实现精准的时间控制:
<html><center>Look now: <?php if(date('N') == 4 && date('G') == 16 && date('i') >= 0 && date('i') <= 20) { echo "This is the text"; } ?> </center></html>
更严谨的写法(推荐)
将date('i')转换为整数,避免字符串与数字比较的潜在类型问题:
<html><center>Look now: <?php $currentMinute = (int)date('i'); if(date('N') == 4 && date('G') == 16 && $currentMinute >= 0 && $currentMinute <= 20) { echo "This is the text"; } ?> </center></html>
修改后就能在周四16:00-16:20之间正常显示目标文本。
内容的提问来源于stack exchange,提问作者Roberto Rdguez Glez
相关产品推荐
相关产品推荐

