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

标签 php mysql

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

我有这样的数据库

设备 购买日期 失效日期

笔记本电脑 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/

相关文章:

php - 无法使用 Debian 连接到 SSL Postgres 外部数据库(证书权限错误)

php - 移动设备上的 PayPal Payflow Gateway 出错

php - 如何使用 PHP 和 SQL 更改按年份分组的导航的月份顺序

mysql - 删除重复的 MySQL 行但保留一行

php - 如何在同一页面的标签页内跳转

php - 如何为 jquery 自动完成制作 json 代码?

php - 如何保护 imap_open 连接的安全

python - Gearman + SQLAlchemy - 不断丢失 MySQL 线程

mysql - ERRoR+Mysqld(无法通过套接字 '/var/run/mysqld/mysqld.sock' (2) 连接到本地 MySQL 服务器(Mysql2::Error)

php - html textarea mysql insert 为 HTML 和 android 保留新行