2017-10-17 79 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

相關問題