When trying to pass daylight saving state change time, sub() works incorrectly.
$t = new DateTime( '2014-03-30 02:00:00' );
$t->add( new DateInterval('PT1H') );
echo $->format('Y-m-d H:i:s');
output will be: '2014-03-30 04:00:00'.
Well, it's ok because at 3:00 a.m. daylight saving time begins in my country, so after 02:59:59 must be 04:00:00.
But if I try to subtract time:
$t = new DateTime( '2014-03-30 04:00:00' );
$t->sub( new DateInterval('PT1H') );
echo $->format('Y-m-d H:i:s');
output will be: '2014-03-30 04:00:00'.
Yes, completely the same, not '2014-03-30 02:00:00' as it should be.