Как добавить час на время этой строки datetime?

Вот пример строк datetime, с которыми я работаю:

Tue May 15 10:14:30 +0000 2012

Вот моя попытка добавить час на это:

$time = 'Tue May 15 10:14:30 +0000 2012';
$dt = new DateTime($time);
$dt->add(new DateInterval('P1h'));

Но вторая строка дает ошибку, что она не может быть преобразована.

Благодарю.

Ответы на вопрос(3)

я обычно использую модификацию datetime на моих внешних веб-сайтах. ПроверьтеРуководство по PHP для дополнительной информации. С предложенным кодом он должен работать так:

$time = 'Tue May 15 10:14:30 +0000 2012';
$dt = new DateTime($time);
$dt->modify('+ 1 hour');

Для тех, кто не использует ориентацию объекта, просто используйте его следующим образом (первая строка DateTime просто для того, чтобы добавить что-то новое в этот поток, я использую его для проверки времени сервера):

$dt = new DateTime("@".$_SERVER['REQUEST_TIME']);  // convert UNIX epoch to PHP DateTime
$dt = date_modify($dt, "+1 hour");

Лучший,

Решение Вопроса

T до части спецификации времени:

$time = 'Tue May 15 10:14:30 +0000 2012';
$dt = new DateTime($time);
$dt->add(new DateInterval('PT1H'));

УвидетьDateInterval конструктор документация:

The format starts with the letter P, for "period." Each duration period is represented by an integer value followed by a period designator. If the duration contains time elements, that portion of the specification is preceded by the letter T.

(Emphasis added)

 15 мая 2012 г., 11:35
+1 DateInterval всегда предпочтительнее.

strtotime():

$time = 'Tue May 15 10:14:30 +0000 2012';
$time = strtotime($time) + 3600; // Add 1 hour
$time = date('D M j G:i:s O Y', $time); // Back to string
echo $time;

Ваш ответ на вопрос