2017-03-21 10 views
2

私が間違ったフォーラムに投稿した場合、またはこの質問に以前に回答した場合。私は研究をしましたが、私は答えを見つけることができませんでした。PHPは時間選択メニューに30分ずつ追加します

時間選択メニューは、以下のコードを使用して作成しましたが、わかりませんが、私は時間選択メニューを作成して、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

+1

私は二次元のforループを作成したいと思います。最初のものは数時間、Secondは2番目のものです。もし問題がなければ、この 'for'ループに2つのオプションをエコーし​​ます。 – MikeVelazco

+0

私は第二の選択肢に行きました、そしてそれは働きました。私はそれが効率的かどうか疑問に思います。以下のコードを参照してください: ​​ Doug

+1

あなたの質問の最後に、あなたのquestion'回答 'というボタンがありますか???。あなたが答えとしてこのコメントを書いたら誰にとっても良いでしょう。 – MikeVelazco

答えて

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> 
+0

ありがとうございました!上記のコードは完全に機能しました。 – Doug

+1

私の喜び、前向きに! – mayersdesign

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> 
関連する問題