私は自動予約を行うスクリプトを使用しています。以下のスニペットは、利用可能な時間を見つけるためのものです。しかし、今まで聞いたことのないものに出くわしました。
スクリプトで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:092-
>開始13:33:11終了13:33:11
var_dump($ freetime);を更新します。出力を変更します