将当前日期与数据库中的日期进行比较

时间:2019-05-15 08:26:27

标签: php mysql

我的问题是这两个日期不能比较或至少不好。

我尝试了Comparing two dates的大多数答案。但是他们都不成功。

我所知道的是

else if ($_SESSION['org_id'] != "0" && $_SESSION['part_id'] == 0) {
    require '../conn.php';
    $sql = "SELECT `end_date` FROM `partner_subscriptions` WHERE `user_id` = '" . $dUsrId . "'";
    $result1 = mysqli_query($conn, $sql );
    $row = mysqli_fetch_array($result1);
    if (date('Y-m-d') >= $row['end_date']) {
        header('Location: ../../index');
    } else {
        header('Location: ../../partnersubscription');
    }
} 

我尝试过的一件事

else if ($_SESSION['org_id'] != "0" && $_SESSION['part_id'] == 0) {
    require '../conn.php';
   // header('Location: ../../partnersubscription');
    $sql = "SELECT `end_date` FROM `partner_subscriptions` WHERE `user_id` = '" . $dUsrId . "'";
    $result1 = mysqli_query($conn, $sql);
    $row = mysqli_fetch_array($result1);
    $today = date("Y-m-d");
    $expire = $row['end_date']; //from database
    $today_time = strtotime($today);
    $expire_time = strtotime($expire);
    if ($expire_time > $today_time) {
        header('Location: ../../index');
    } else {
        header('Location: ../../partnersubscription');
    }
} 

我希望当今天的日期小于行的日期时,它将进入索引,否则将进入partnersubscription。

我的行end_date看起来像是“ 2019-06-06”,DATE

2 个答案:

答案 0 :(得分:0)

我会这样查询:

SELECT * FROM `partner_subscriptions` WHERE `end_date`>=now()  AND `user_id`=$dUsrId;

然后检查行数(如果为1则表示尚未过期),如果行数为0则表示已过期。

答案 1 :(得分:0)

为什么不使用mysql检查这种情况:

"SELECT  EXISTS( "SELECT 1 FROM `partner_subscriptions` WHERE `user_id` = '" . $dUsrId . "' AND end_date > NOW() "  ) ;

如果没有过期,您将获得1;如果没有过期,您将获得0 ps。您可能需要使用> =,而不仅要使用>(今天要包括或不包括)