3v4l.org

run code in 300+ PHP versions simultaneously
<?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);

preferences:
56.31 ms | 402 KiB | 5 Q