Я работаю над сценарием, который назначает автоматическую встречу, и фрагмент ниже предназначен для поиска доступного времени. Однако я столкнулся с чем-то, о чем я никогда раньше не слышал.
Когда я использую var_dump в моем скрипте, чтобы увидеть переменные (я всегда делаю это при кодировании), скрипты запускаются ОК. Тем не менее, когда я удаляю эти строки, скрипт перестает работать как задумано. так как я не могу использовать var_dump для отладки, так как это заставляет скрипт работать.
function getfirstfree($length, $limit) {
$length = new DateInterval('PT' . $length . 'M');
$table = "randevu";
$today = date('Y-m-d', time());
$q = $this->db->get_where('randevu', array('date' => $today));
$events = $q->result_array();
if ($q->num_rows() > 0) {
for ($i=0; $i < sizeof($q); $i += 1) {
$c_ends = new DateTime($events[$i]['ends']);
$n_starts = new DateTime($events[$i+1]['starts']);
$freetime = $c_ends->diff($n_starts);
$length_w_break = $length;
$length_w_break->i = $length_w_break->i + 10;
var_dump($length_w_break);
var_dump($freetime);
if ($freetime > $length_w_break) {
echo "ok";
return $c_ends->add(new DateInterval('PT10M'));
}
else {
return "no";
}
}
}
}
без var_dump скрипты возвращают нет. с var_dump возвращает первый свободный слот.
текущие значения, взятые из базы данных
1-> начинается 12:56:09 и заканчивается 12: 56: 09
2-> начинается 13:33:11 заканчивается 13: 33: 11
обновление var_dump ($ freetime); изменяет вывод