如何计算从当前系统日期到过去和未来日期的365天,并使用php和mysql相应地获取数据

时间:2015-07-15 01:41:48

标签: php mysql

我想根据过期的日期获取数据。

我有这样的数据库

Equipment Purchase Date Expiry Date

Laptop 2015-07-15 2016-07-15
Mobile 2012-07-15 2013-07-15
Desktop 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';
     } 

但我只想获取已过期且未过期的数据。

请帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

使用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数据运算可以让您无需计算数天或数月;它知道必要的日历细节。