我想根据过期的日期获取数据。
我有这样的数据库
设备
购买日期
失效日期
笔记本电脑
2015-07-15
2016-07-15
手机
2012-07-15
2013-07-15
桌面
2011-07-15
2012-07-15
现在我想获取已过期的数据,如果购买日期距当前日期不到 365 天,则表示设备未过期,否则已过期。那么,如何获取过期的数据和如何获取未过期的数据。
我设法计算日期并像这样打印条件。
$purchasedate = strtotime ($row['purchasedate']);
$todayDate = strtotime (date("j-m-Y"));
$timeDiff = abs($todayDate - $supplydate1);
$numberDays = $timeDiff/86400;
$numberDays = intval($numberDays);
if ($numberDays > 365)
{
$expiry = 'Warranty Expired';
} else {
$expiry = 'Under Warranty';
}
但我只想获取已过期和未过期的数据。
请帮忙,谢谢。
最佳答案
使用 MySQL 日期算法。
SELECT equipment,
CASE WHEN expiryDate > CURDATE() THEN 'Current'
ELSE 'Expired' END
FROM table
如果您只想显示过期的行,请将此 WHERE
子句附加到您的查询中。
WHERE expiryDate <= CURDATE()
您可以使用日期算术做各种很酷的事情。例如,要查找从现在到两个月后到期的所有行,请使用此 WHERE
子句。
WHERE expiryDate > CURDATE()
AND expiryDate <= CURDATE() + INTERVAL 2 MONTH
同样,如果您想查看购买日期为一年前或更早的行,您可以这样做。
WHERE purchaseDate <= CURDATE() 1 INTERVAL 1 YEAR
此 SQL 数据算法使您无需计算天数或月数;它知道必要的日历详细信息。
关于php - 如何计算从当前系统日期到过去和 future 日期的 365 天,并使用 php 和 mysql 相应地获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31420114/