给定以下
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
结果为何
很好
已过期
很好
过期
为什么expire date -> 2014-10-07
不打印Warning
?
$vid_date
小于$current_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
你需要安排你的条件词。把你的第一个条件放在最后解决问题。