在指定结束时间的情况下,比当前回合多一小时

时间:2014-07-16 12:33:52

标签: php

如何回应比当前时间多一小时的小时? 我现在就这样:

<option>07</option>
<option>08</option>
<option>09</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
<option>21</option>
<option>22</option>

但是,如果现在是16:00,我需要的是这样回应:

<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
<option>21</option>
<option>22</option>

3 个答案:

答案 0 :(得分:0)

试试这个:

$current_hour = intval(date("H"));
for($i = 7; $i <= 22; $i++)
{
    if($i > $current_hour)
        echo "<option>".($i<10 ? "0":"").$i."</option>\n";
}

答案 1 :(得分:0)

最简单的解决方案:

for ($i=date('H')+1; $i<24; ++$i) {
    echo '<option value="'.$i.'">'.$i.'</option>';

}

但是,如果当前小时为例如22或23,则需要考虑要显示的内容。

此外,您可能还希望str_pad函数显示前导零,因此代码应如下所示:

for ($i=date('H')+1; $i<24; ++$i) {
    echo '<option value="'.$i.'">'.str_pad($i,2,'0', STR_PAD_LEFT).'</option>';

}

答案 2 :(得分:0)

我现在正在工作,但这应该可以解决问题:)

$now = date('H');
$max = 22;
for($i=1;$i<=$max;$i++) {
    $n = $now + $i;
    if ($n <= $max) {
        $s = $now+" + "+$i+" hours";
        echo "<option>".$s."</option>";
    }
}