It is not stated, but you cannot create directly a negative interval, this is you cannot create a "-2 days" interval as:
<?
$interval = new DateInterval("P-2D");//or
$interval = new DateInterval("-P2D");
?>
Instead you have to create first the interval and then set its 'invert' property to 1, this is:
<?
$interval = new DateInterval("P2D");
$interval->invert = 1;
?>
Then you should keep in mind that this interval acts as a negative number, hence to subtract the interval from a given date you must 'add' it:
<?
$interval = new DateInterval("P2D");
$interval->invert = 1;
$date = new DateTime ("1978-01-23 17:46:00");
$date->add($interval)->format("Y-m-d H:i:s");//this is "1978-01-21 17:46:00"
?>