PHP选择框,包含时间和日期的多个选项

PHP选择框,包含时间和日期的多个选项,php,html,Php,Html,我想在我的网站上有一个选择框,其中包含多个选项(从今天起最多3天) 并显示以下选项: <optgroup>Wednesday 8th Janurary (tomorrow)</optgroup> <option>08:00 - 10:00</option> <option>10:00 - 12:00</option> 更新: 我也试过: <select name="time"> <?php for

我想在我的网站上有一个选择框,其中包含多个选项(从今天起最多3天)

并显示以下选项:

<optgroup>Wednesday 8th Janurary (tomorrow)</optgroup>
<option>08:00 - 10:00</option>
<option>10:00 - 12:00</option>
更新:

我也试过:

<select name="time">
    <?php for($i = 1; $i <= 24; $i++) {
        echo '<option value="'.$i.'">'.date("h.iA", strtotime("$i:00")).'</option>';
    }
    ?>
    </select>


所以你希望它在09:00开始,17:00结束,每个选项有两个小时的时段

那么这个,

<select>

<?php for ($i = date('G') < 17 ? 0 : 1; $i <= 2; ++$i) { ?>

  <optgroup label="<?php echo date('l j F', strtotime('+ ' . $i . ' day')); echo !$i ? ' (Today)' : (1 === $i ? ' (Tomorrow)' : ''); ?>">

    <?php for ($n = 9; $n < 16; $n += 2) { if ($i || date('G', strtotime('+ 15 minutes')) < $n + 2) { ?>

      <option><?php echo str_pad($n, 2, '0', STR_PAD_LEFT); ?>:00 - <?php echo str_pad($n + 2, 2, '0'); ?>:00</option>

    <?php } } ?>

  </optgroup>

<?php } ?>

</select>


我只对MichaelRushton先生的努力做了一些小的修改。对我来说,这归功于MichaelRushton先生。但它仍然在这里

    <select>

<?php for ($i = 1; $i <= 2; ++$i) { ?>

  <optgroup label="<?php echo date('l j F', strtotime('+ ' . $i . ' day')); ?>">
    <?php if($i==0) { ?>
    <?php for ($n = date('H'); $n < 16; $n += 3) { ?>
      <option><?php echo str_pad($n, 2, '0', STR_PAD_LEFT); ?>:00 - <?php echo str_pad($n + 2, 2, '0'); ?>:00</option>
    <?php } }?> 
    <?php for ($n = 9; $n < 16; $n = $n + 3) { ?>

      <option><?php echo str_pad($n, 2, '0', STR_PAD_LEFT); ?>:00 - <?php echo str_pad($n + 2, 2, '0'); ?>:00</option>

    <?php } ?>

  </optgroup>

<?php } ?>

</select>


那很好。你的问题是什么?你试过什么吗?先给我们看一下你的努力吗?看看我的代码更新。他确实在网上发现了一些东西。这比我们在这里的一些帖子所能说的还要多。你需要自动显示从9点到17点的时间,对吗?是的,差不多了!如果时间发生了,我怎么能让它消失?例如,它显示的是今天的时间,并且所有3个选项都不再可用?这显示的是OP不想要的从今天9点开始的时间,而不是4天3@putvande,上午9:00排除在外不在问题中,他说未来3天内,我理解为今天+3天。我怎样才能把今天和明天放在今天和明天旁边的括号中?非常感谢。抱歉,还有一个:)-假设现在是13:45(14:00结束时间前15分钟),你能让12:00-14:00不显示吗
<select>

<?php for ($i = date('G') < 17 ? 0 : 1; $i <= 2; ++$i) { ?>

  <optgroup label="<?php echo date('l j F', strtotime('+ ' . $i . ' day')); echo !$i ? ' (Today)' : (1 === $i ? ' (Tomorrow)' : ''); ?>">

    <?php for ($n = 9; $n < 16; $n += 2) { if ($i || date('G', strtotime('+ 15 minutes')) < $n + 2) { ?>

      <option><?php echo str_pad($n, 2, '0', STR_PAD_LEFT); ?>:00 - <?php echo str_pad($n + 2, 2, '0'); ?>:00</option>

    <?php } } ?>

  </optgroup>

<?php } ?>

</select>
    <select>

<?php for ($i = 1; $i <= 2; ++$i) { ?>

  <optgroup label="<?php echo date('l j F', strtotime('+ ' . $i . ' day')); ?>">
    <?php if($i==0) { ?>
    <?php for ($n = date('H'); $n < 16; $n += 3) { ?>
      <option><?php echo str_pad($n, 2, '0', STR_PAD_LEFT); ?>:00 - <?php echo str_pad($n + 2, 2, '0'); ?>:00</option>
    <?php } }?> 
    <?php for ($n = 9; $n < 16; $n = $n + 3) { ?>

      <option><?php echo str_pad($n, 2, '0', STR_PAD_LEFT); ?>:00 - <?php echo str_pad($n + 2, 2, '0'); ?>:00</option>

    <?php } ?>

  </optgroup>

<?php } ?>

</select>