3

$dbSessionDate我的问题是,如果开始日期和开始时间$dbSessionTime早于当前日期和时间,我如何禁用下面创建下拉菜单中的选项?

下面是使用 mysqli 从数据库中获取数据的下拉菜单:

while ( $sessionqrystmt->fetch() ) {

$time_string = $dbSessionDate." ".$dbSessionTime;
$time_from_string = strtotime($time_string);    
if($time_from_string > date("Y-m-d H:i:s"))
{
$sessionHTML .= sprintf("<option value='%s'>%s - %s - %s</option>", $dbSessionId, $dbSessionName, date("d-m-Y",strtotime($dbSessionDate)), date("H:i",strtotime($dbSessionTime))) . PHP_EOL;    
}else{
$sessionHTML .= sprintf("<option value='%s' disabled>%s - %s - %s</option>", $dbSessionId, $dbSessionName, date("d-m-Y",strtotime($dbSessionDate)), date("H:i",strtotime($dbSessionTime))) . PHP_EOL;   

}
}

更新:

来自视图源的 HTML:

<select name="session" id="sessionsDrop">
<option value="">Please Select</option>
<option value='28'>LDREW - 09-01-2013 - 09:00</option>
<option value='29'>BQNYF - 10-01-2013 - 10:00</option>
<option value='22'>WDFRK - 17-01-2013 - 09:00</option>
<option value='26'>POKUB1 - 25-01-2013 - 15:00</option>
</select>
4

2 回答 2

1

使用strtotime(). $dbSessionDate将和组合$dbSessionTime在一起,将其传递给函数strtotime,然后将结果变量与 进行比较date()

代码:

$time_string = $dbSessionDate." ".$dbSessionTime;
$time_from_string = strtotime($time_string);

if($time_from_string > strtotime(date("Y-m-d H:i:s")))
{
   //Do whatever you like to do.
}
于 2013-01-14T15:50:05.027 回答
0

您需要比较日期和时间,以及在当前日期和时间之前的时间,您需要将“禁用”属性放入下拉列表。

像这样的东西:

while ( $sessionqrystmt->fetch() ) {
    $attribute = "";
    if (strtotime($dbSessionDate." ".$dbSessionTime) < date("Y-m-d H:i:s")){ $atribute = "disabled";}
    $sessionHTML .= sprintf("<option value='%s' %s>%s - %s - %s</option>", $dbSessionId, $attribute, $dbSessionName, date("d-m-Y",strtotime($dbSessionDate)), date("H:i",strtotime($dbSessionTime))) . PHP_EOL;
}

在这里你可以看到禁用属性定义: http ://www.w3schools.com/tags/att_option_disabled.asp

于 2013-01-14T16:00:09.467 回答