Я хочу, чтобы на моем веб-сайте была выбрана коробка, в которой есть несколько вариантов (до 3 дней в будущем с сегодняшнего дня)
и для отображения таких параметров, как:
<optgroup>Wednesday 8th Janurary (tomorrow)</optgroup>
<option>08:00 - 10:00</option>
<option>10:00 - 12:00</option>
с 09:00
до 17:00
каждый день и до 3 дней в будущем
я нашел это в Интернете, но я не слишком уверен, как закончить его, как я этого хочу:
$start = "11:00";
$end = "13:30";
$tStart = strtotime($start);
$tEnd = strtotime($end);
$tNow = $tStart;
while($tNow <= $tEnd){
echo date("H:i",$tNow)."\n";
$tNow = strtotime('+30 minutes',$tNow);
}
ОБНОВИТЬ:
Я также пробовал:
<select name="time">
<?php for($i = 1; $i <= 24; $i++) {
echo '<option value="'.$i.'">'.date("h.iA", strtotime("$i:00")).'</option>';
}
?>
</select>
но его просто показывать все время
ОБНОВИТЬ:
Ок обновить от ответа:
Я пробовал делать:
<select name="time"><?php
for ($i = 0; $i <= 3; ++$i) {
echo '<optgroup label="'.date('l j F', strtotime('+ ' . $i . ' day')).'">';
for ($n = 9; $n < 16; $n = $n + 3) {
if(!$n > date("H")) {
echo '<option>'.$n.':00 - '.($n+2).':00</option>';
}
}
echo '</optgroup>';
}
?></select>
где я добавил в выражении if его теперь не показывая никаких времен. Я хочу удалить время, которое уже произошло, если это возможно?
Итак, вы хотите, чтобы он начинался в 09:00, заканчивался в 17:00 и имел два часа слота на один вариант?
Тогда это:
<select>
<?php for ($i = date('G') < 17 ? 0 : 1; $i <= 2; ++$i) { ?>
<optgroup label="<?php echo date('l j F', strtotime('+ ' . $i . ' day')); echo !$i ? ' (Today)' : (1 === $i ? ' (Tomorrow)' : ''); ?>">
<?php for ($n = 9; $n < 16; $n += 2) { if ($i || date('G', strtotime('+ 15 minutes')) < $n + 2) { ?>
<option><?php echo str_pad($n, 2, '0', STR_PAD_LEFT); ?>:00 - <?php echo str_pad($n + 2, 2, '0'); ?>:00</option>
<?php } } ?>
</optgroup>
<?php } ?>
</select>
Я только сделал некоторые незначительные изменения в усилиях мистера Раштона. Для меня это заслуга мистера МайклаРуштона. Но все же здесь
<select>
<?php for ($i = 1; $i <= 2; ++$i) { ?>
<optgroup label="<?php echo date('l j F', strtotime('+ ' . $i . ' day')); ?>">
<?php if($i==0) { ?>
<?php for ($n = date('H'); $n < 16; $n += 3) { ?>
<option><?php echo str_pad($n, 2, '0', STR_PAD_LEFT); ?>:00 - <?php echo str_pad($n + 2, 2, '0'); ?>:00</option>
<?php } }?>
<?php for ($n = 9; $n < 16; $n = $n + 3) { ?>
<option><?php echo str_pad($n, 2, '0', STR_PAD_LEFT); ?>:00 - <?php echo str_pad($n + 2, 2, '0'); ?>:00</option>
<?php } ?>
</optgroup>
<?php } ?>
</select>