如果日期是今天,如何禁用下拉菜单中的过去时间?

时间:2019-06-14 03:06:49

标签: php

如果日期是今天,则无法禁用下拉菜单中的过去时间。 谁能帮我吗?

我一直成功地在下拉列表中显示。

<?php
$currentDate = date('Y-m-d H:i:s');

$explode = explode(' ',$currentDate);
$time = $explode[1];
list($h,$m,$s) = explode(':',$time);
for($hours=8; $hours<22; $hours++) // the interval for hours is '1'
    for($mins=0; $mins<60; $mins+=30) // the interval for mins is '30'

        echo '<option>'.str_pad($hours,2,'0',STR_PAD_LEFT).':'
           .str_pad($mins,2,'0',STR_PAD_LEFT).':'
           .str_pad($sec=0,2,'0',STR_PAD_LEFT);'</option>';
?>

我希望输出是如果日期是今天,当前系统时间是10:00:00,那么下拉列表中的过去时间将被禁用。

1 个答案:

答案 0 :(得分:0)

在for循环内,您可以检查当前时间是否大于您为该选项回显的时间。然后,您可以使用它为已禁用设置变量。

<?php

for ($hours=8; $hours<22; $hours++) {
    for ($mins=0; $mins<60; $mins+=30) {
        $optTime = strtotime($hours.':'. $mins . ':00');
        $curTime = strtotime(date('H:i:s'));
        $disabled = "";
        if ($optTime <= $curTime) {
            $disabled ='disabled';
        }

        echo '<option ' . $disabled . '>'.str_pad($hours, 2, '0', STR_PAD_LEFT).':'
           .str_pad($mins, 2, '0', STR_PAD_LEFT).':'
           .str_pad($sec=0, 2, '0', STR_PAD_LEFT);
        '</option>';
    }
}