Как добавить время timeType в DateTimeType

Я хочу добавить переменную типа 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
var_dump($duration), что именно?
u_mulder 23.03.2019 19:12

На входе я установил 1 час: object(DateTime)#1404 (3) {["date"]=> string(26) "1970-01-01 01:00:00.000000" ["timezone_type"]=> int( 3) ["часовой пояс"]=> строка(13) "Европа/Берлин" }

Khalil 23.03.2019 19:21

В базе я получил 01:00:00

Khalil 23.03.2019 19:23

Вам каким-то образом нужно преобразовать объект DateTime в объект DateInterval и передать этот объект DateInterval в качестве аргумента методу add.

u_mulder 23.03.2019 19:25

как вы получаете свою продолжительность?

kuh-chan 23.03.2019 19:33
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
128
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я полагаю, что в 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, вы можете многое сделать.

Другие вопросы по теме