Reputation: 2762
I got the start time
,end time
,break start
,break end
and time interval
too.
$start_time='9:00';
$end_time='15:00';
$break_start='13:00';
$break_end='14:00';
$time_interval='60';
The output i want will be like below. The user pick the time slot from this.
9:00 to 10:00
10:00 to 11:00
11:00 to 12:00
12:00 to 13:00
14:00 to 15:00
I am trying to figure this out but no idea how to do it.
Upvotes: 2
Views: 248
Reputation: 1769
Try this
<?php
$start_time='9:00';
$end_time='15:00';
$break_start='13:00';
$break_end='14:00';
$time_interval='60';
for($i=strtotime($start_time);$i<strtotime($end_time); $i=$i+($time_interval*60))
{
if(!($i>=strtotime($break_start) && $i<strtotime($break_end)))
echo date("H:i",$i).' to '.date("H:i",($i+($time_interval*60))).'<Br/>';
}
?>
Upvotes: 1
Reputation: 5444
Try this....
$start_time='9:00';
$end_time='15:00';
$break_start='13:00';
$break_end='14:00';
$time_interval='60';
for($i=strtotime($start_time);$i<=strtotime($end_time);$i=$i+(60*$time_interval))
{
if(strtotime($start_time) < $i)
{
$workstart=date('H:i',($i-(60*$time_interval)));
$workend=date('H:i', $i);
if(strtotime($break_start) !=$i-(60*$time_interval) && strtotime($break_end) !=$i)
{
echo $workstart.' to '.$workend;
echo "</br>";
}
}
}
Output:
09:00 to 10:00
10:00 to 11:00
11:00 to 12:00
12:00 to 13:00
14:00 to 15:00
Upvotes: 4
Reputation: 2709
<?php
$start_time= new DateTime("9:00");
$end_time= new DateTime("15:00");
$break_start= new DateTime("13:00");
$break_end= new DateTime("14:00");
$time_interval= DateInterval::createFromDateString('60 min');
$times = new DatePeriod($start_time, $time_interval, $end_time);
foreach ($times as $time) {
echo "<input type='radio'>";
echo $time->format('H:i'), '-',
$time->add($time_interval)->format('H:i'), "\n";
echo "<br/>";
}
?>
Put the name you want to your radios
Upvotes: 1