我希望以上午或下午30分钟的间隔显示时间

时间:2016-09-17 06:38:19

标签: php html mysql datetime time

我正在开发一个预订系统,其中可用时间是上午10:00到下午5:00。我在表格中以30分钟的间隔显示这个时间。上午10:00是开始时间和5 :00 pm是结束时间。但是我能够在下一行的30分钟间隔显示时间,如第一行中的10:00,第二行中的10:30,依此类推。但我想要在上午10:00 - 上午10:30排在第二排上午10:30 - 上午11:00。

class Tournament < ActiveRecord::Base
  has_many :teams_in_tournaments
  has_many :teams, :through => :teams_in_tournaments
  belongs_to :organizer, class_name: "User"
  has_one :rule, :dependent => :destroy
  accepts_nested_attributes_for :rule
  has_many :matches, :dependent => :destroy
  belongs_to :winner, class_name: "Team"
end

我希望在第一行上午10:00到10:30显示时间,依此类推。

3 个答案:

答案 0 :(得分:1)

使用foreach中的current()next(),如下所示获取下一个元素

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

答案 1 :(得分: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 
     }
    } ?>

在上午和下午的a中添加date()

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

答案 2 :(得分:1)

您可以使用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;
}