2016-11-24 4 views
0

開始時刻として現在時刻を取得するドロップダウンを作成し、24時間が来るまでの24時間まで終了するようにします。その間に15分増分の時間が表示されます。問題は、ループを開始しようとすると、開始時間は問題ありませんが、次のループでは時間が6時間遅れることになります。ここでループ内の時間を15分増やす

は私のコードです: 23:08 午後4:00 4時15分PM 16:30

などなどとして来

$current_time = date('h:i A'); 
$end_hour  = date("+24 hours", $current_time); 

echo "<option>" . $current_time . "</option>"; 
for($i = 0; $i <= 96; $i++) { 
    echo "<option>" . date("h:i A", $tNow) . "</option>"; 
    $tNow = strtotime('+15 minutes',$current_time); 
} 

出力。

答えて

3

あなたはそのためのDateTimeを使用することができます。

$now = new DateTime(); 
$end = clone $now; 
$end->modify("+24 hours"); 

while ($now <= $end) { 
    echo "<option>" . $now->format('h:i A'). "</option>"; 
    $now->modify('+15 minutes'); 
} 
+0

gretaそれは私のために働いたが、クローンは何ですか? –

+0

[clone](http://php.net/manual/en/language.oop5.cloning.php)を使用すると、参照を保持せずにインスタンス化されたオブジェクトをコピーすることができます。したがって、複製されたオブジェクトに対して行われた更新は、 1。 –

0

いくつかあります。まず最初の行に2番目のパラメータがありません。 $ tNow undefinedを使用しています。

$current_time = date('h:i A', time()); 
$end_hour  = date("+24 hours", strtotime($current_time)); 


$tNow = strtotime($current_time); 
echo "<option>" . $current_time . "</option>"; 
for($i = 0; $i <= 96; $i++) { 
    echo "<option>" . date("h:i A", $tNow) . "</option>"; 
    $tNow = strtotime('+15 minutes', $tNow); 
} 
+0

2番目のパラメータはオプションです。指定されていない場合、現在の日付が使用されます.. –

+0

@Matei Mihaiはそれについて忘れてしまいました! – Gacci

関連する問題