如何将php数据库中的日期和今天的日期进行比较

如何将php数据库中的日期和今天的日期进行比较,php,mysql,database,Php,Mysql,Database,我创建了一个mysql表,如下所示 我想使用if-else语句将表中的日期与当前日期进行比较,并在同一日期的前一天、后一天和前一天向用户发送通知 例如,假设今天的日期是18/10,牛奶的有效期是20/10,所以我想在19日、20日和21日发送通知 因此,如果您能帮助我比较代码和发送通知(如电子邮件)的代码,该代码应位于if语句下,我将非常感激: 我的问题可能看起来很简单,但我是php新手,我没有太多关于它的信息 这是我正在尝试的php代码 <?php $first= new Carbo

我创建了一个mysql表,如下所示

我想使用if-else语句将表中的日期与当前日期进行比较,并在同一日期的前一天、后一天和前一天向用户发送通知

例如,假设今天的日期是18/10,牛奶的有效期是20/10,所以我想在19日、20日和21日发送通知

因此,如果您能帮助我比较代码和发送通知(如电子邮件)的代码,该代码应位于if语句下,我将非常感激:

我的问题可能看起来很简单,但我是php新手,我没有太多关于它的信息

这是我正在尝试的php代码

<?php


$first= new Carbon;

//$second= here I want the date to be collected from date column in the database

//X= The name of the item that will be collected from database (Item_Name) column


if ($second=eq($first+1))

    {echo"X is going to expire tomorrow"}

// instade of dispaying the above sentence, i want it to be sent as email


if ($first=eq($second))

    {echo"X is going to expire today!!"}


if ($first>eq($second))

    {echo"X has EXPIRED already"}

?>
您可以使用DATE_ADD函数来确定时间间隔

SELECT
   col1,
   col2,
   ...
FROM
   table
WHERE
   `date_column` BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 DAY);
您提到了PHP,我想澄清一下这是MySQL,我假设您有一个cron作业或类似的设置来运行PHP脚本

更新: 根据您更新的问题,您有两个主要选择,要么在数据库中进行处理,要么在PHP中进行处理。这个决定取决于你打算如何使用它,但可以用两种方法都可行

-MySQL-

SELECT 
    ID,
    Item_Name,
    Expiry_Date,
    CASE 
        WHEN `Expiry_Date` < CURDATE() THEN CONCAT(`Item_Name`,' has EXPIRED already.')
        WHEN `Expiry_Date` = CURDATE() THEN CONCAT(`Item_Name`,' will expire today.')
        WHEN `Expiry_Date` BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 DAY) THEN CONCAT(`Item_Name`,' will expire tomorrow.')
        WHEN `Expiry_Date` > DATE_ADD(CURDATE(), INTERVAL 1 DAY) THEN CONCAT(`Item_Name`,' will expire after tomorrow.')
        ELSE 'Error processing expiration date.'
   END AS `Expiration_Message`
FROM
    table;
那会产生什么 ID项目\名称到期\日期到期\消息 1牛奶2017-10-20牛奶将于明天到期。 2鸡肉2017-10-22鸡肉将于明天到期。 3肉类2017-10-25肉类将于明天到期

您还可以在PHP中进行字符串解析和日期添加,这似乎是从PHP开始的。在发送电子邮件方面,PHP有一个邮件功能,它可能会给您一些关于电子邮件的指导。现在,我假设你想让它按计划运行,所以我会调查一下


希望这有助于进一步澄清。

Thnaks供您评论。如果我没有弄错的话,我想DATE_ADD函数是用来添加日期的,但是我想做的是比较两个日期,如果条件是真的,我已经在问题中包含了我正在处理的代码,我想这可能会帮助你对我所说的有一个清晰的概念。对不起,我没有理解你的意思,我应该把代码放在哪里,是在sql查询中还是在sql查询中?因为我使用phpmyadmin作为本地主机。我以前并没有创建过数据库,也并没有学习过php,但我的项目碰巧有数据库,我正在尝试从这里和那个里获取一些信息。
SELECT 
    ID,
    Item_Name,
    Expiry_Date,
    CASE 
        WHEN `Expiry_Date` < CURDATE() THEN CONCAT(`Item_Name`,' has EXPIRED already.')
        WHEN `Expiry_Date` = CURDATE() THEN CONCAT(`Item_Name`,' will expire today.')
        WHEN `Expiry_Date` BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 DAY) THEN CONCAT(`Item_Name`,' will expire tomorrow.')
        WHEN `Expiry_Date` > DATE_ADD(CURDATE(), INTERVAL 1 DAY) THEN CONCAT(`Item_Name`,' will expire after tomorrow.')
        ELSE 'Error processing expiration date.'
   END AS `Expiration_Message`
FROM
    table;