Qaisar Satti
Qaisar Satti

Reputation: 2762

I want to show the time pickup with time interval

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

Answers (3)

sujivasagam
sujivasagam

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

Deenadhayalan Manoharan
Deenadhayalan Manoharan

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

Hearner
Hearner

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

Related Questions