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"

?>