如何回应比当前时间多一小时的小时? 我现在就这样:
<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>
答案 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>";
}
}