Я хочу создать выпадающее меню, которое будет занимать текущее время в качестве времени начала и закончится до 24 часов, например, до 24 часов, поэтому между ними будет отображаться время каждые 15 минут. Проблема в том, что когда я пытаюсь запустить время начала цикла, все в порядке, но со следующим циклом время перепрыгивает на 6 часов.
Вот мой код:
$current_time = date('h:i A'); $end_hour = date("+24 hours", $current_time); echo "<option>" . $current_time . "</option>"; for($i = 0; $i <= 96; $i++) { echo "<option>" . date("h:i A", $tNow) . "</option>"; $tNow = strtotime('+15 minutes',$current_time); }
Выход ожидается в 11:08 PM 16:00 16:15 16:30
И так далее.
Вы можете использовать DateTime для этого:
$now = new DateTime(); $end = clone $now; $end->modify("+24 hours"); while ($now <= $end) { echo "<option>" . $now->format('h:i A'). "</option>"; $now->modify('+15 minutes'); }
есть пара вещей. Сначала на первой строке отсутствует второй параметр. Затем вы используете $ tNow undefined.
$current_time = date('h:i A', time()); $end_hour = date("+24 hours", strtotime($current_time)); $tNow = strtotime($current_time); echo "<option>" . $current_time . "</option>"; for($i = 0; $i <= 96; $i++) { echo "<option>" . date("h:i A", $tNow) . "</option>"; $tNow = strtotime('+15 minutes', $tNow); }