dongzhan5246 2019-06-14 03: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-14 03: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>';
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?