php string в формате даты, добавьте 12 часов

У меня есть этот string объект в моем php-массиве

"2013-03-05 00: 00: 00 + 00"

Я хотел бы добавить 12 часов к записи в PHP, а затем сохранить ее обратно в строку в том же формате

Я считаю, что это связано с преобразованием строки в объект даты. Но я не уверен, насколько умен объект даты, и нужно ли мне указывать его параметры форматирования или если он должен просто взять строку

 $date = new DateTime("2013-03-05 00:00:00+00"); $date->add("+12 hours"); //then convert back to string or just assign it to a variable within the array node 

Я возвращал пустые значения из этого метода или аналогичный, который я пробовал

Как бы вы решили эту проблему?

Спасибо, ваше понимание оценено

Измените add() чтобы modify() . add() ожидает объект DateInterval.

 <?php $date = new DateTime("2013-03-05 00:00:00+00"); $date->modify("+12 hours"); echo $date->format("Ymd H:i:sO"); 

Смотрите это в действии

Вот пример использования объекта DateInterval:

 <?php $date = new DateTime("2013-03-05 00:00:00+00"); $date->add(new DateInterval('PT12H')); echo $date->format("Ymd H:i:sO"); 

Смотрите это в действии

Изменить эту строку

 $date->add("+12 hours"); 

с

 $date->add(new DateInterval("PT12H")); 

это добавит 12 часов к вашей дате

Посмотрите на страницу конструктора DateInterval, чтобы узнать, как построить строку DateInterval

Используйте это, чтобы добавить часы,

 $date1= "2014-07-03 11:00:00"; $new_date= date("Ymd H:i:s", strtotime($date1 . " +3 hours")); echo $new_date; 

Если у вас есть динамический интервал, этот способ позволит избежать ошибок неправильного формата для $ dateDiff:

 $dateDiff = "12 hours"; $interval = DateInterval::createFromDateString($dateDiff); $date = new DateTime("2013-03-05 00:00:00+00"); $date->add($interval); echo $date->format("Ymd H:i:sO"); - $dateDiff = "12 hours"; $interval = DateInterval::createFromDateString($dateDiff); $date = new DateTime("2013-03-05 00:00:00+00"); $date->add($interval); echo $date->format("Ymd H:i:sO"); 

При необходимости здесь пример. Джейсон написал хороший пример, который объясняет эту проблему.