1

我想做的是当用户登录时我想通知他们产品即将过期

关于我需要为此使用哪些查询以及如何执行此操作的任何想法?

谢谢。

4

4 回答 4

0

您所要做的就是在您的条件中添加一些“时间数学”:

WHERE p.PID = s.PID AND DateExpiry < ADDDATE(NOW(), INTERVAL 3 DAY) AND Custid = $_SESSION['user']

这将使用从现在开始的 3 天时间而不是当前时间来进行比较。

当然,您可以随时更改间隔,例如使用INTERVAL 1 DAY仅添加 1 天。

有效单位可以在这里找到。

作为替代方案,如果您使用的是不太旧的服务器版本,您可以只编写一个简单的添加:

WHERE p.PID = s.PID AND DateExpiry < NOW() + INTERVAL 3 DAY AND Custid = $_SESSION['user']
于 2013-04-22T17:05:53.943 回答
0

检查这个

SELECT p.ProductName, s.Quantity, s.Price, s.DateExpiry FROM seller s, Product p
WHERE p.PID = s.PID AND Custid = $_SESSION['user'] AND
(DateExpiry BETWEEN curdate() and curdate() + interval 3 day) ORDER BY DateExpiry
于 2013-04-22T17:13:14.867 回答
0

尝试这个:

SELECT p.ProductName, s.Quantity, s.Price, s.DateExpiry FROM seller s, Product p
WHERE p.PID = s.PID AND DateExpiry < DATE_ADD(NOW(), INTERVAL 3 DAY) AND Custid = $_SESSION['user']
于 2013-04-22T17:04:19.053 回答
0

您不必稍微更改查询,但您必须对您拥有的数据进行一些计算,现在我不知道您的 dateexpiry 是什么甲酸盐,但它可能看起来像这样。

代码:

$now = new DateTime('now');
$dateToCompare = new DateTime('2013-04-11');//here is where you put your dateexpire variable

$difference = $now->format('U') - $dateToCompare->format('U');
// or if your date to compare is in the future :
// $difference = $dateToCompare->format('U') - $now->format('U');
$time_diff = gmdate('d',$difference);

echo $time_diff;
if($time_diff == 3):
echo "there is 3 days left";
elseif($time_diff < 3):
echo "less then 3 day there will be 10% reduction";
endif;

代码取自: 获取两个日期之间的时间差

于 2013-04-22T17:08:54.477 回答