如果不满足当前时间或日期,如何禁用选项

时间:2013-01-14 15:42:19

标签: php mysqli

我的问题是,如果开始日期$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>

2 个答案:

答案 0 :(得分: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.
}

答案 1 :(得分: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