我的问题是这两个日期不能比较或至少不好。
我尝试了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
答案 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。您可能需要使用> =,而不仅要使用>(今天要包括或不包括)