M is used to indicate both months and minutes.As noted on the referenced wikipedia page for ISO 6801 http://en.wikipedia.org/wiki/Iso8601#DurationsTo resolve ambiguity, "P1M" is a one-month duration and "PT1M" is a one-minute duration (note the time designator, T, that precedes the time value).Using: PHP 5.3.2-1ubuntu4.19// For 3 Months$dateTime = new DateTime;echo $dateTime->format( DateTime::ISO8601 ), PHP_EOL;$dateTime->add(new DateInterval("P3M"));echo $dateTime->format( DateTime::ISO8601 ), PHP_EOL;Results in:2013-07-11T11:12:26-04002013-10-11T11:12:26-0400// For 3 Minutes$dateTime = new DateTime;echo $dateTime->format( DateTime::ISO8601 ), PHP_EOL;$dateTime->add(new DateInterval("PT3M"));echo $dateTime->format( DateTime::ISO8601 ), PHP_EOL;Results in:2013-07-11T11:12:42-04002013-07-11T11:15:42-0400Insert a T after the P in the interval to add 3 minutes instead of 3 months.