2016-09-17 9 views
1

利用可能なタイミングが午前10時から午後5時までの予約システムに取り組んでいます。この時間を30分間隔で表示しています表の午前10時は開始時刻、午後5時が終了時刻です。しかし、次の行の30分間隔でタイミングを最初の行の10時のように表示できます10:30 2列目のように。しかし、私は午前10時から午前10時30分、午前10時30分から午前11時まで2列目にしたい。AMまたはPMで30分間隔でタイミングを表示したい

<table style="border: 1px solid;"> 
    <thead> 
     <tr> 
     <td style="border:1px solid;padding:11px;">Time</td> 
     <td style="border:1px solid;padding:11px;">Book</td> 
     </tr> 
    </thead> 
    <tbody> 
    <?php 
     $starttime = $query2['starttime']; // your start time 
     $endtime = $query2['endtime']; // End time 
     $duration = '30'; // split by 30 mins 

     $array_of_time = array(); 
     $start_time = strtotime ($starttime); //change to strtotime 
     $end_time  = strtotime ($endtime); //change to strtotime 

     $add_mins = $duration * 60; 
     while ($start_time <= $end_time) // loop between time 
    { 
$array_of_time[] = date ("h:i", $start_time); 
$start_time += $add_mins; // to check endtime 
    } 

    foreach ($array_of_time as $key => $single_time) { 
    ?> 
     <tr> 
     <td style="border:1px solid;padding:11px;"><?php echo $single_time; ?><br /><span style="color:red;"><?php echo "Available"; ?></span></td> 
     <td style="border:1px solid;padding:11px;"><input type="radio" value="<?php echo $single_time; ?>" id="A" name="A" ></td> 
     </tr> 
     <?php } ?> 

     </tbody> 
    </table> 

最初の行に午前10時から午前10時半などのタイミングを表示したいとします。

答えて

1
ため date()aを追加してみ取得するforeachの中 current()next()を使用します

DateTimeを使用できます。回避する。この方法で、後でDateTimeコンストラクタの値を置き換えるだけで、後から変更できます。

$date = new DateTime('2016-09-17 10:00'); 

while ($start_time < $end_time) 
{ 
    $start = $date->format('H:i'); 

    $date->add(new DateInterval('PT30M')); 

    echo $start . ' - ' . $date->format('H:i') . "\n"; 

    $start_time += $add_mins; 
} 
+0

ありがとうございました。 –

1

次のように次の要素

foreach ($array_of_time as $key => $single_time) { 
    echo current($array_of_time); 
    echo " => "; 
    echo next($array_of_time); 
    echo '<br>'; 
} 
+0

11時30分から時間が表示されていますが、開始時間は11時です。また終了時刻も@サシクマールです。 –

+0

ありがとうございます。 –

1

この

$arr_ctr=count($array_of_time)-1; 
    foreach ($array_of_time as $key => $single_time) { 
    if($arr_ctr>$key){ 
    ?> 
     <tr> 
     <td style="border:1px solid;padding:11px;"><?php echo $array_of_time[$key].' - '.$array_of_time[$key+1]; ?><br /><span style="color:red;"><?php echo "Available"; ?></span></td> 
     <td style="border:1px solid;padding:11px;"><input type="radio" value="<?php echo $single_time; ?>" id="A" name="A" ></td> 
     </tr> 
     <?php 
    } 
    } ?> 

は午前と午後

$array_of_time[] = date ("h:i a", $start_time); 
+0

AMとPMを表示することはできますか?利用可能なタイミングは午前11時から午後6時です@ momouu。 –

+0

私はそれを追加しました – momouu

+0

ありがとうございます。それは働いています@ momouu。 –

関連する問題