2016-09-17 100 views
1

我正在制定一些预订系统,其中可用性时间是上午10点到下午5点。我显示的时间间隔为30分钟.10:00是开始时间,下午5:00是结束时间。但是我可以在下一行30分钟的时间间隔显示时间,就像第一排的10:00一样.10:30在第二行等等。但我想要在上午10点 - 上午10点30分在上午10点30分 - 上午11点在第二排。我想按上午或下午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:00时间 - 上午10:30在第一行等等。

回答

1

您可以使用DateTime o bject。这样,您可以稍后通过替换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

使用current()next()中的foreach如下,以获得下一个元素

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点,结束时间也是@Sasikumar。 –

+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 
    } 
    } ?> 

添加adate()为上午和下午

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

我可以向他们展示上午和下午吗?如果可用时间是上午11点到下午6点。@ momouu。 –

+0

我已经加入 – momouu

+0

非常感谢。它的作品。@ momouu。 –

相关问题