Я хочу добавить переменную типа TimeType в переменную DateTimeType
Я пробовал этот код:
$newDate = $dateAppointment->add($duration);
но я получил эту ошибку
Warning: DateTime::add() expects parameter 1 to be DateInterval, object given
Примеры данных:
$dateAppountment = 2019-03-21 10:15:00
$duration : 00:15:00
На входе я установил 1 час: object(DateTime)#1404 (3) {["date"]=> string(26) "1970-01-01 01:00:00.000000" ["timezone_type"]=> int( 3) ["часовой пояс"]=> строка(13) "Европа/Берлин" }
В базе я получил 01:00:00
Вам каким-то образом нужно преобразовать объект DateTime в объект DateInterval и передать этот объект DateInterval в качестве аргумента методу add.
как вы получаете свою продолжительность?






Я полагаю, что в symfony уже существует какой-то преобразователь, но я не могу его найти. Итак, вот пользовательский код, как преобразовать время из DateTime в DateInterval и добавить его к другому \DateTime:
$dateAppointment = (new \DateTime());
$dtDuration = (new \DateTime())->setTime(1, 15, 0);
$duration = $duration->format('\P\TH\Hi\Ms\S');
$newDate = $dateAppointment->add(new \DateInterval($duration));
Рабочий пример: https://3v4l.org/5lFlQ
Вот пример:
$duration = '1970-01-01 01:00:00.000000';
$timeObject = DateTime::createFromFormat('Y-m-d H:i:s.u', $duration, new DateTimeZone('UTC'));
$date = '2019-03-21 10:15:00';
$dateObject = DateTime::createFromFormat('Y-m-d H:i:s', $date);
$modify = '+' . $timeObject->format('U') . ' second';
echo $dateObject->modify($modify)->format('Y-m-d H:i:s');
Просто получите секунды из вашего объекта продолжительности и добавьте их в свой объект даты. Если вы использовали modify, вы можете многое сделать.
var_dump($duration), что именно?