我正在编写一个自动预约的脚本,下面的代码片段用于查找可用时间。然而,我遇到了一些我以前从未听说过的事情。
当我在脚本中使用 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,脚本将返回 no。使用 var_dump,它返回第一个空闲槽。
从数据库中获取的当前值是
1-> 开始 12:56:09 结束 12:56:09
2-> 开始 13:33:11 结束 13:33:11
更新var_dump($freetime); 改变输出