PHP为时间选择菜单添加30分钟的增量

时间:2017-03-21 19:05:55

标签: php html

原谅我如果我在错误的论坛上发帖或者此问题已经得到了回答。我做了我的研究,但找不到答案。我需要创建一个时间选择菜单,用户可以使用PHP / HTML以30分钟的增量选择时间(见图1):

我使用下面的代码创建了时间选择菜单,但我不知道如何每次添加30分钟的增量(参见图2)。有人可以帮帮我吗?

<tr><td>Time</td>
<td><select name="times" multiple>
<?php for($i = 7; $i < 20; $i++): ?>
<option value="<?= $i; ?>"><?= $i % 12 ? $i % 12 : 12 ?>:00 <?= $i >= 12 ?    'pm' : 'am' ?></option>
<?php endfor ?>
</select></td>
</tr>

Image 1 Image 2

2 个答案:

答案 0 :(得分:1)

这就是诀窍:

<tr><td>Time</td>
<td><select name="times" multiple>
<?php 
 $start = strtotime('07:00');
 $end   = strtotime('20:00');
 for ($i=$start; $i<=$end; $i = $i + 30*60){
   echo '<option>'.date('g:i A',$i).'</option>';
 }
?>
</select></td>
</tr>

答案 1 :(得分:1)

这应该是更好的方法,因为你已经完成了主要部分并且只想添加30分钟的间隔,所以通过使用你的代码,我只是按照以下方式扩展它:

<tr><td>Time</td>
<td><select name="times" multiple>
<?php for($i = 7; $i < 20; $i++): ?>

<?php if ($i % 12): ?>
    <option value="<?= $i; ?>"><?= $i % 12 ?>:00 <?= $i >= 12 ?    'pm' : 'am' ?></option>
    <option value="<?= $i; ?>:30"><?= $i % 12 ?>:30 <?= $i >= 12 ?    'pm' : 'am' ?></option>
<?php else: ?>
    <option value="<?= $i; ?>"><?= 12 ?>:00 <?= $i >= 12 ?    'pm' : 'am' ?></option>
    <option value="<?= $i; ?>:30"><?= 12 ?>:30 <?= $i >= 12 ?    'pm' : 'am' ?></option>
<?php endif; ?>

<?php endfor ?>
</select></td>
</tr>