在PHP中将两个日期与一个日期相加进行比较

在PHP中将两个日期与一个日期相加进行比较,php,date,diff,Php,Date,Diff,我的代码: <?php $today = date('Y-m-d H:i:s'); $expire1 = $row['datetime']; $dni_uslugi = $usluga_wybor['days']; $expire = date('Y-m-d H:i:s', strtotime($expire1. '+ '.$dni_uslugi.' days')); $format = "Y-m-d H:i:s"; $date1 = DateTime::createFromForma

我的代码:

<?php 
$today = date('Y-m-d H:i:s');
$expire1 = $row['datetime'];
$dni_uslugi = $usluga_wybor['days'];
$expire = date('Y-m-d H:i:s', strtotime($expire1. '+ '.$dni_uslugi.' days'));
$format = "Y-m-d H:i:s";
$date1  = DateTime::createFromFormat($format, $today);
$date2  = DateTime::createFromFormat($format, $expire);

if($date2 < $date1) echo 'delete';

根据这条代码,再加上30天,你就可以到4月6日了

<?php
$date1 = new DateTime('2016-03-07 22:32:54');
$date2 = clone($date1);
$daysToAdd = 30;
$date2->add(new DateInterval("P{$daysToAdd}D"));
echo "date1:" . $date1->format('Y-m-d H:i:s') . "\n";
echo "date2:" . $date2->format('Y-m-d H:i:s') . "\n";

if($date2 < $date1) echo "delete\n";
else echo "keep\n";

根据这条代码,再加上30天,你就到了4月6日

<?php
$date1 = new DateTime('2016-03-07 22:32:54');
$date2 = clone($date1);
$daysToAdd = 30;
$date2->add(new DateInterval("P{$daysToAdd}D"));
echo "date1:" . $date1->format('Y-m-d H:i:s') . "\n";
echo "date2:" . $date2->format('Y-m-d H:i:s') . "\n";

if($date2 < $date1) echo "delete\n";
else echo "keep\n";

“我的日期是2016-03-07 22:32:54,这个日期的$dni_uslug是30天,所以应该在4月7日结束。”。今年三月和往常一样有31天。3月7日后30天是4月6日。如果需要添加1个月,则添加1个月,而不是30天。我会在代码的前面创建
DateTime
对象,然后使用以避免所接受格式的模糊性。类似于
$date1=newdatetime()$date2=(新($row['datetime'])->添加(新的日期间隔('P'.$dni_uslugi.D'))
@axiac这不是我的问题所在,我需要增加30天、14天或7天。这取决于服务“我有日期2016-03-07 22:32:54和$dni_uslug,该日期为30天,因此应在4月7日结束”。今年三月和往常一样有31天。3月7日后30天是4月6日。如果需要添加1个月,则添加1个月,而不是30天。我会在代码的前面创建
DateTime
对象,然后使用以避免所接受格式的模糊性。类似于
$date1=newdatetime()$date2=(新($row['datetime'])->添加(新的日期间隔('P'.$dni_uslugi.D'))
@axiac这不是我的问题所在,我需要增加30天、14天或7天。这取决于服务好吧,我的错。。。但这不是我的问题。我想知道为什么脚本告诉我,如果我在3月7日之前加上30天,使用日期就过期了。。。它应该告诉我它在4月6日之前是活跃的???好吧,我的错。。。但这不是我的问题。我想知道为什么脚本告诉我,如果我在3月7日之前加上30天,使用日期就过期了。。。它应该告诉我它在4月6日之前是活跃的???