Как добавить время timeType в DateTimeType - PullRequest
0 голосов
/ 23 марта 2019

Я хочу добавить переменную типа TimeType в переменную DateTimeType

Я использую этот код:

$newDate = $dateAppointment->add($duration);

но я получил эту ошибку

Предупреждение: DateTime :: add () ожидает, что параметр 1 будет DateInterval, объект дан

Примеры данных:

$dateAppountment = 2019-03-21 10:15:00 
$duration : 00:15:00

Ответы [ 2 ]

1 голос
/ 23 марта 2019

Полагаю, в 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

0 голосов
/ 23 марта 2019

Вот пример:

$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, вы можете сделать много вещей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...