dongzhan5246
2019-06-14 03:06
浏览 45
已采纳

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

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>';
        }
    }
    
    已采纳该答案
    打赏 评论

相关推荐 更多相似问题