Hi
I am not sure I am approaching this correctly.
I need to increment the appointment time by 15 mins for each loop.
This is would be the correct result:
13:00, 13:15, 13:30, 13:45, 14:00,
This is what I am getting:
13:15, 13:15, 13:15, 13:15, 13:15
The user selects the first appointment example 13:00:00 hrs (HH:MM)
and one or more time blocks. Time blocks range from 1 to 10. Each is 0.15 mins (H).
\$event_time = 13:00;//start time
\$time_block = 5;// number of loops
\$event_length = 0.15;//start time increment by

``````<?php
/**--------------------------insert appointment in database--------------------------**/
//loop the number of time blocks
for(\$i = 0; \$i < \$time_block; \$i++)
{

/**---------------------calculate total duration---------------------**/
//Note: event time length * time_block = total event duration
//split event time
list(\$event_hour, \$event_min) = explode(".",\$event_time);

//event length
list(\$length_hour, \$length_min) = explode(".",\$event_length);

//convert event time to minutes
\$event_minutes = (\$event_hour * 60) + \$event_min;

//convert event time length to minutes
\$length_minutes = (length_hour * 60) + \$length_min;

//add event time to event duration = next event time
\$total_min = \$event_minutes + \$length_minutes++;

//convert minutes to hours and minutes
if(\$total_min < 0)
{
\$min =Abs(\$total_min);
}
else
{
\$min = \$total_min;
}
\$H = Floor(\$min/60);
\$M = (\$min - (\$H * 60))/100;
\$hours = \$H + \$M;

if(\$total_min < 0)
{
\$hours = \$hours * (-1);
}

\$expl = explode(".",\$hours);
\$H = \$expl;

if(empty(\$expl))
{
\$expl = 00;
}

\$M = \$expl;
if(strlen(\$M) < 2)
{
\$M = \$M . 0;
}

\$new_event_time = \$H.".".\$M;//total duration

/**-------------------database insert statement goes here ------------------**/

}
<?``````

Hi
Thanks for the response.
This is the solution:

``````\$event_time = "13:00";
\$time_block = 5;
\$event_length = 15; // minutes
for(\$i = 0, \$eTime = strtotime(\$event_time);
\$i < \$time_block;
\$i++, \$eTime = strtotime("+\$event_length minutes", \$eTime))
{
\$new_event_time = date('H:i', \$eTime);
echo "<p>\$new_event_time</p>\n";
}``````

aasgar. Your problem is when you do an explode() on the \$even_time your seperator is "." but there are no dots in 13:00 it should be
exlode(":", \$event_time);

Fix that, and it should work for you.

Cheers.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.19 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.