0

I'd like some help please. I'm having this dropdown menu

<select name="schedule_time">
    <option value="00:00:00">00:00:00</option>
    <option value="00:30:00">00:30:00</option>
    <option value="01:00:00">01:00:00</option>
    <option value="01:30:00">01:30:00</option>
    <option value="02:00:00">02:00:00</option>
    <option value="02:30:00">02:30:00</option>
    <option value="03:00:00">03:00:00</option>
    <option value="03:30:00">03:30:00:00</option>
    <option value="04:00:00">04:00:00</option>
    <option value="04:30:00">04:30:00</option>
    <option value="05:00:00">05:00:00</option>
    <option value="05:30:00">05:30:00</option>
    <option value="06:00:00">06:00:00</option>
    <option value="06:30:00">06:30:00</option>
    <option value="07:00:00">07:00:00</option>
    <option value="07:30:00">07:30:00</option>
    <option value="08:00:00">08:00:00</option>
    <option value="08:30:00">08:30:00</option>
    <option value="09:00:00">09:00:00</option>
    <option value="09:30:00">09:30:00</option>
    <option value="10:00:00">10:00:00</option>
    <option value="10:30:00">10:30:00</option>
    <option value="11:00:00">11:00:00</option>
    <option value="11:30:00">11:30:00</option>
    <option value="12:00:00">12:00:00</option>
    <option value="12:30:00">12:30:00</option>
    <option value="13:00:00">13:00:00</option>
    <option value="13:30:00">13:30:00</option>
    <option value="14:00:00">14:00:00</option>
    <option value="14:30:00">14:30:00</option>
    <option value="15:00:00">15:00:00</option>
    <option value="15:30:00">15:30:00</option>
    <option value="16:00:00">16:00:00</option>
    <option value="16:30:00">16:30:00</option>
    <option value="17:00:00">17:00:00</option>
    <option value="17:30:00">17:30:00</option>
    <option value="18:00:00">18:00:00</option>
    <option value="18:30:00">18:30:00</option>
    <option value="19:00:00">19:00:00</option>
    <option value="19:30:00">19:30:00</option>
    <option value="20:00:00">20:00:00</option>
    <option value="20:30:00">20:30:00</option>
    <option value="21:00:00">21:00:00</option>
    <option value="21:30:00">21:30:00</option>
    <option value="22:00:00">22:00:00</option>
    <option value="22:30:00">22:30:00</option>
    <option value="23:00:00">23:00:00</option>
    <option value="23:30:00">23:30:00</option>
</select>

Is there a way to make it a little bit more dynamic, instead of having this huge html ?

Something like this

<?php foreach (date('H:i:s') as $time): ?>
    <option value="<?php echo $time; ?>"><?php echo $time; ?></option>
<?php endforeach; ?>
3
  • Why don't you have two drop downs - 1 for hour and 1 for month, seconds are constant in your case - 0 Commented Jun 14, 2016 at 10:23
  • This is what I already have. one for date and one for time, like you said Commented Jun 14, 2016 at 10:26
  • 1
    I prefer to split hours and minutes in time Commented Jun 14, 2016 at 10:27

4 Answers 4

4

You can use while loop to make it,

<?php
    $start = "00:00"; //you can write here 00:00:00 but not need to it
    $end = "23:30";

    $tStart = strtotime($start);
    $tEnd = strtotime($end);
    $tNow = $tStart;
    echo '<select name="schedule_time">';
    while($tNow <= $tEnd){
        echo '<option value="'.date("H:i:s",$tNow).'">'.date("H:i:s",$tNow).'</option>';
        $tNow = strtotime('+30 minutes',$tNow);
    }
    echo '</select>';
?>
Sign up to request clarification or add additional context in comments.

Comments

2

Best and simplest method:

<select>
<?php 
for($hours=0; $hours<24; $hours++)
{
    for($mins=0; $mins<60; $mins+=30)
    { 
        $time = str_pad($hours,2,'0',STR_PAD_LEFT).':'.str_pad($mins,2,'0',STR_PAD_LEFT).':00';
        echo '<option value= "'.$time.'">'.$time.'</option>';
    }
}
?>
</select>

Comments

0

hey you can try this code, you can take whatever range $start and $end variable .

  <?php
$start = "12:00:00";
$end = "24:00:00";

$tStart = strtotime($start);
$tEnd = strtotime($end);
$tNow = $tStart;
?>
<select name="schedule_time">
<?php
while($tNow <= $tEnd){ ?>

    <option value="<?php  echo date("H:i:s",$tNow); ?>"> <?php echo date("H:i:s",$tNow);?></option>
    <?php

  $tNow = strtotime('+30 minutes',$tNow);
}
?>

Comments

0

Try with this code.

 <?php 
        $start = '00:00AM';
        $end = '11:59PM';
        $interval = '+30 minutes';
        $now_str = strtotime($start);
        $end_str = strtotime($end);
        echo '<select name="schedule_time">';
        while($now_str <= $end_str){
            ?>
            <option value="<?php echo date('H:i A', $now_str);?>" ><?php echo date('H:i A', $now_str);?></option>
        <?php
        }
         echo '</select>';
 ?>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.