2017-10-17 133 views
-1

我已经创建了如下所示的mysql表。如何比较日期从php数据库与今天的日期

我想在当前的日期表中的日期使用的if else语句后一天比较,并提前一天发送通知给用户,和一个同日

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

所以,如果你可以帮助我比较代码和发送通知(如电子邮件)这应该是如果陈述我真的很感激它的代码:)。

我的问题可能看起来很简单,但我对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"} 

?> 

我的表我的PHP代码:

ID Item_Name Expiry_Date 
1 Milk  2017-10-20 
2 Chicken 2017-10-22 
3 Meat  2017-10-25 

回答

1

您可以使用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 ITEM_NAME EXPIRY_DATE Expiration_Message 1个牛奶2017年10月20日牛奶后天将到期。 2鸡2017-10-22鸡将在明天后过期。 3肉类2017-10-25肉类将在明天后过期。

你也可以在PHP中做字符串解析和日期添加,你似乎开始。在发送电子邮件方面,PHP有一个mail函数,其中How to send an email using PHP?可能会给你一些指导。现在,我假设你想要按计划运行,所以我会考虑Execute PHP script in cron job

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

+0

Thnaks for your comment。如果我没有弄错,我认为DATE_ADD函数是用于添加日期的,但是我想要做的是用于比较两个日期并在条件为真时采取行动,我已经包含了我在其中工作的代码问题,我认为这可能会帮助你清楚我所谈论的内容。 – Monzer

+0

对不起,但我没有得到你的观点,我应该在哪里放置代码,它是在SQL查询还是?因为我使用phpmyadmin作为本地主机。我还没有创建数据库之前或了解有关的PHP,但我的项目碰巧有数据库,我试图从这里到那里得到一些信息。 – Monzer