dongzhan5246 2019-06-13 19:06
浏览 46
已采纳

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

I could not disable the past time in the dropdown if the date is today. Can anyone help me?

I have successfully shown all the time in the dropdown.

<?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>';
?>

I expect the output is if the date is today and the current system time is 10:00:00 then the past time in the dropdown is disabled.

  • 写回答

1条回答 默认 最新

  • dounangqie4819 2019-06-13 19:23
    关注

    Inside your for loop you can do a check to see if the current time is greater than the time you are echoing for the option. You can then use this to set a variable for disabled.

    <?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>';
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部