Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
两个日期之间的PHP日期比较_Php_Mysql_Date - Fatal编程技术网

两个日期之间的PHP日期比较

两个日期之间的PHP日期比较,php,mysql,date,Php,Mysql,Date,我想保持跟踪状态,如果2天内没有产品发货,则必须有一个通知,通过电子邮件提醒他们进行发货。装运日期可以从电子邮件日期获取,但如果我比较: //MAX(date_shipment = latest date record of shipment in database if (MAX(date_shipment) - dateNow() >= 2 days ) { $update ="update table1 set remarks = 'No shipment received

我想保持跟踪状态,如果2天内没有产品发货,则必须有一个通知,通过电子邮件提醒他们进行发货。装运日期可以从电子邮件日期获取,但如果我比较:

//MAX(date_shipment = latest date record of shipment in database

if (MAX(date_shipment) - dateNow() >= 2 days )
{
   $update ="update table1 set remarks = 'No shipment received since 2 days ago', status = 'warning'";
   $result = mysql_query($update);
}
else
{ }
但我认为有一个问题,因为这段代码与
dateNow()
比较。如果收到新的装运,日期比较代码仍在运行,但不会与收到的新装运日期进行比较。我不知道如何解释,如何开始做这个功能

有人能提出解决这个问题的正确方法吗?提前感谢

让我们试试下面的代码:

$currentDate = getdate();
$anotherDate = MAX(date_shipment); //whatever this is

//this will give sql format to the current date
$year = $currentDate['year'];
$month = $currentDate['mon'];
$day = $currentDate['mday'];
$currentDate = $year.'-'.$month.'-'.$day;

$date1 = date_create($anotherDate); //assuming your date has sql format
$date2 = date_create($currentDate);

$difference = date_diff($date1, $date2);
$difference = str_replace(" days","",$difference->format('%R%a days'));

if ($difference >= 2){
    $update ="update table1 set remarks = 'No shipment received since 2 days ago', status = 'warning'";
    $result = mysql_query($update);
}
else
{ } //I don't get what you want here

这似乎是你想要做的。不要再使用mysql了,请使用mysqli

$dbDate = mysql_query("SELECT `date_shipment` FROM table1");

$addedDate = new DateTime();
$addedDate->modify('+2 day');

if ($dbDate['date_shipment'] >= $addedDate)
{
   $update ="UPDATE table1 SET remarks = 'No shipment received since 2 days ago',
   status = 'warning'";
   $result = mysql_query($update);
}
else
{ }

请出示您的密码。这还不足以让我们继续下去。
如果(MAX(date\u shipping)-dateNow()>=2天)
这不会在PHP中解析。您的
updatetable1 set备注='2天前以来未收到任何装运',状态='warning'
查询将更新表中的每一行,因为您没有指定
WHERE
子句。
date\u-shipping
应该是
$date\u-shipping
?这是数据库中的日期元素吗?@SverriM.Olsen我还没有完成代码。仍在理解流程,但如果收到新的装运,当我们只是将db中的最新装运日期与datenow()进行比较时,状态警告仍然正确显示。我在执行此代码时遇到此错误“致命错误:调用未定义的函数date_create()”。有什么想法吗?函数$date=date_create(“2013-03-15”);但是我们已经格式化了日期函数$currentDate=$year.-'.$month.-'.$day;结果证明函数date_create()存在。检查这里:但是我现在正在使用mysql。程序显示此错误“调用未定义函数mysqli_query()”。当我运行此代码时,我根据mysqli定制了我的答案,因为这是您应该使用的。现在试试。当Im使用mysqliYou尚未更新所有代码时,仍然会出现错误“致命错误:调用未定义的函数mysqli_query()”。看上面,没有任何东西在调用该函数。为了使用mysqli,您需要更改其他代码,例如连接。$addedDate指的是什么?是现在的日期吗?因为错误显示“致命错误:找不到类'DateTime'。所以我需要更新DateTime函数。如果我将DateTime()更改为dateNow()是可能的