繁体   English   中英

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

[英]How to compare dates from php database with the today's date

我创建了一个 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"}

?>

我的表:

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

您可以使用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 Milk 2017-10-20 Milk 将在明天之后过期。 2 鸡肉 2017-10-22 鸡肉将在明天之后过期。 3 肉 2017-10-25 肉将在明天之后过期。

您还可以在 PHP 中进行字符串解析和日期添加,这似乎是您开始使用的。 在发送邮件方面,PHP有mail功能, 如何使用PHP发送邮件? 可能会给你一些指导。 现在,我假设您希望它按计划运行,因此我将研究在 cron job 中执行 PHP 脚本

希望这有助于更多的澄清。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM