感谢您阅读我的问题。在 PHP 中使用 for 循环,我希望在企业的开放和关闭时间之间完成一个时间列表(偏移 5 分钟)的回显。这个挑战对编程来说不是问题,我的代码<option>
成功地输出了一个巨大的标签列表,每个标签内都有时间值(偏移 5 分钟):
IE:
<option value="2013-06-06 08:00:00">8:00 am</option>
<option value="2013-06-06 08:05:00">8:05 am</option>
<option value="2013-06-06 08:10:00">8:10 am</option>
.....etc.
但是,我有一个 MYSQL 表设置,每行内都有一列(设置为 DATETIME 格式),即开球时间....许多人可能知道您不能有超过一个人预订开球立即关闭,所以我试图让它在哪里,如果那个时间(在那个 for 循环内)等于从数据库中获取的任何(预定)时间,那个值不会在那个列表中回显。
下面是我的代码,(至少是 for 循环)这是输出<option>
标签的内容:(而且你可以看到我试图在那里做一个 IF 语句,说明如果$time等于$tee_times_from_mysql不要回显那个<option>
.. .然后继续检查下一个,依此类推。)但是,当$tee_times_from_mysql从我的 MYSQL 数据库中被 SELECT-ed 时,它只花费了最近预订的开球时间(只有一个)并排除了... .其余的都被忽略了(或者根本就没有被拿走,不确定)....所以如果有超过一个预定的开球时间(显然会更多),它就不起作用....我的问题是如果它们等于数据库中的任何时间,我如何排除时间。
for ($i=$startHour; $i <= $endHour; $i++)
{
for ($j = 0; $j <= 55; $j+=5)
{
$time_pre = $i.":".str_pad($j, 2, '0', STR_PAD_LEFT);
$time = ''.$time_pre .' '.$day.'';
/////////////////////////////
$time_formated_for_cosmetic = date("g:i a", strtotime("$time"));
$time_formated_for_mysql = date("Y-m-d H:i:s", strtotime("$time"));
if ($time == $tee_times_from_mysql){
$time = '';
}
else{
$time = '<option value="' . $time_formated_for_mysql . '">'.$time_formated_for_cosmetic .'</option>';
}
echo $time;
}
}
这也是我的 MYSQL 提取:
$tee_times_from_mysql = "";
$sql = "SELECT * FROM tee_times";
$query = mysqli_query($db_conx, $sql);
while($row = mysqli_fetch_assoc($query)){
$tee_times_from_mysql = $row["date_time"];
$tee_times_from_mysql = date("G:i n/j/y", strtotime("$tee_times_from_mysql"));
}