Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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
Oop php日期时间差返回零_Oop - Fatal编程技术网

Oop php日期时间差返回零

Oop php日期时间差返回零,oop,Oop,我只是想知道为什么DateTime::diff返回零。我预计会在5天内回来,肯定是我做错了什么。请这里的人更正我的密码 $oneYearPlus = str_replace(':', '-', date('Y:m:d', strtotime('+1 year', strtotime('now')))); var_dump($oneYearPlus); $date = new DateTime($oneYearPlus); ## 2015-09-26 var_dump($da

我只是想知道为什么DateTime::diff返回零。我预计会在5天内回来,肯定是我做错了什么。请这里的人更正我的密码

$oneYearPlus = str_replace(':', '-', date('Y:m:d', strtotime('+1 year', strtotime('now'))));

var_dump($oneYearPlus);

$date        = new DateTime($oneYearPlus);  ## 2015-09-26

var_dump($date); // Output
--------------------------------
object(DateTime)[18]
  public 'date' => string '2015-09-27 00:00:00' (length=19)
  public 'timezone_type' => int 3
  public 'timezone' => string 'Europe/Moscow' (length=13)
--------------------------------

$warning     =  $date->sub(new DateInterval('P5D')); ## 2014-09-21

var_dump($warning); // Output
--------------------------------
object(DateTime)[18]
  public 'date' => string '2015-09-22 00:00:00' (length=19)
  public 'timezone_type' => int 3
  public 'timezone' => string 'Europe/Moscow' (length=13)
--------------------------------

$interval    =  $warning->diff($date);
var_dump($interval->format('%a days')); ## output 0 days
$date获得减去的值(返回相同的值),因此$warning&$date具有相同的值- 要解决此问题。。。我只是克隆了$date变量;-)而且它很有效
$oneYearPlus = str_replace(':', '-', date('Y:m:d', strtotime('+1 year', strtotime('now'))));

            var_dump($oneYearPlus);

            $date        = new DateTime($oneYearPlus);  ## 2015-09-26
            var_dump($date);
            $clone = clone $date;

            $warning     =  $date->sub(new DateInterval('P5D')); ## 2014-09-21
            var_dump($warning);

            $interval    =  $warning->diff($clone);
            var_dump($interval->format('%a days')); ## output 0 days