- var_dump: documentation ( source)
- date_default_timezone_set: documentation ( source)
<?php
date_default_timezone_set('UTC');
$begin = new \DateTime('2012-06-25');
$end = new \DateTime('2012-07-27');
$interval = $begin->diff($end);
$c = $interval;
$seconds = (($end->getTimestamp()) - ($begin->getTimestamp()));
// for DateTimeInterface::add()
$base = new \DateTimeImmutable('2012-07-02');
$end = new \DateTime('2012-08-03');
$interval = $base->diff($end);
$target = $base->add($interval);
$comparison = ((new \DateTime())->setTimestamp((($base->getTimestamp()) + $seconds)));
var_dump($target->format('Y-m-d'));
var_dump($comparison->format('Y-m-d'));
// for DateTimeInterval::sub()
$base = new \DateTimeImmutable('2012-08-03');
$target = $base->sub($interval);
$comparison = (new \DateTime())->setTimestamp($base->getTimestamp() - $seconds);
var_dump($target->format('Y-m-d'));
var_dump($comparison->format('Y-m-d'));
var_dump($seconds, $interval, $c);