php逻辑和非逻辑。(我在这里遗漏了什么)
鉴于以下情况php逻辑和非逻辑。(我在这里遗漏了什么),php,Php,鉴于以下情况 expire date-> 2014-10-14 notify date-> 2014-10-06 current date-> 2014-10-08 Fine expire date-> 2014-10-07 notify date-> 2014-10-06 current date-> 2014-10-08 Expired expire date-> 2014-10-11 notify date-> 2014-10-06 cu
expire date-> 2014-10-14 notify date-> 2014-10-06 current date-> 2014-10-08 Fine
expire date-> 2014-10-07 notify date-> 2014-10-06 current date-> 2014-10-08 Expired
expire date-> 2014-10-11 notify date-> 2014-10-06 current date-> 2014-10-08 Fine
expire date-> 2014-10-05 notify date-> 2014-10-06 current date-> 2014-10-08 Expired
代码呢
FOR loop (each row)
if ($expire date < $current_date) {
echo "Expired <BR/>";
} elseif (($expire date >= $notify_date) && ($expire date <= $current_date)) {
echo "Warning <BR/>";
} elseif ($expire date > $notify_date) {
echo "Fine <BR/>";
}
END FOR
结果为何
好的
期满
好的
过期
为什么过期日期->2014-10-07不打印警告?这是因为$vid\u date小于$current\u date。它满足你的第一个条件,永远不会达到第二个条件。您通常需要将这样的链式条件从头到尾进行排列。我认为问题在于您的第一个逻辑
if (vid date < $current_date) {
echo "Expired <BR/>";
尝试将其移动到最后一个尝试将您的支票从最具体的重新排序到最不具体的:
FOR loop (each row)
if ((expire date >= $notify_date) && (expire date <= $current_date)) {
echo "Warning <BR/>";
} elseif (expire date < $current_date) {
echo "Expired <BR/>";
} elseif (expire date > $notify_date) {
echo "Fine <BR/>";
}
END FOR
你需要把你的条件句安排好。将第一个条件放在末尾可解决问题。过期日期<$current\u date语法无效。打字错误?有点假。按照这里的逻辑,原因是如果10-7比当前日期10-8小,它会出现在第一个位置,它会打印过期。是的,我想我需要一些睡眠。逻辑错误对不起