Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php逻辑和非逻辑。(我在这里遗漏了什么)_Php - Fatal编程技术网

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小,它会出现在第一个位置,它会打印过期。是的,我想我需要一些睡眠。逻辑错误对不起