2015-04-16 4 views
0

Мне удалось динамически загружать и сравнивать несколько значений времени в PHP.Невозможно использовать переменную в функции изменения() DateTime. Я получаю сообщение об ошибке: Объект класса DateInterval не может быть преобразован в строку

Прямо сейчас я застрял здесь:

$additional_time = $entry_start->diff($compare_from_timeformat); 
$additional_time ->format("H:i"); 
$avaliabletime->modify('+1 hours'); 

Я хочу, чтобы заменить +1 с $avaliabletime, но если я попробовать что-то вроде этого:

$avaliabletime->modify('+'.$additional_time.' hours'); 

Я получаю эту ошибку:

Catchable fatal error: Object of class DateInterval could not be converted to string

Итак, у меня осталось 2 вопроса.

  1. Есть ли способ использовать переменную с частью модификации?
  2. Могу ли я также добавить минуты в одну строку? например $avaliabletime->modify('+01:45 hours');?
+0

В кодовом 'Я done' является недопустимо. Если вы будете следовать тому же мышлению, вы не сможете справиться с ** Комплексными проектами ** точно! Пожалуйста, будьте оптимистами. –

+1

, я почти закончил. Я имел в виду, что я почти закончен, сэр, я, возможно, прозвучал так, будто я сдался, но я этого не сделал. Я очень хорошо знаю, что все активные профессионалы здесь активны, кто знает вещи лучше, чем я :)) – Gramrock

ответ

4

$additional_time является DateInterval объекта, а не DateTime объекта или строка. Для того, чтобы изменить ваш объект DateTime на сумму, которую DateInterval представляет использование DateTime::add():

$additional_time = $entry_start->diff($compare_from_timeformat); 
$avaliabletime->add($additional_time); 

Если вы хотите добавить дополнительное время затем вы можете использовать DateTime::modify():

$additional_time = $entry_start->diff($compare_from_timeformat); 
$avaliabletime->add($additional_time); 
$avaliabletime->modify('+45 minutes'); 
+0

Спасибо, Джон! Нет минут, присутствующих в $ avaliable time, т. Е. 1:30. Итак, если я использую $ avaliabletime-> add ($ дополнительная_time); что также будет включать минуты? Если так мне не понадобится -> изменить часть – Gramrock

+0

@Gramrock correct –

+0

Спасибо, Джонни! – Gramrock