php 把过去的时光藏在白天的回忆里

ct2axkht  于 2023-10-15  发布在  PHP
关注(0)|答案(2)|浏览(94)

我有一个菜单,列出了所有时间从上午9点到下午7点半。
如果是下午1点,我想只显示选项,如下午1:30,下午2点等。
如何用我的代码实现这一点?

// time.php
date_default_timezone_set('Europe/London');

$now = date("H:i");
$start = "05:00";
$end = "19:30";

$tStart = strtotime() > strtotime($start) ? strtotime() : strtotime($start);

$tNow = $tStart;
$tEnd = strtotime($end);

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>';
sgtfey8w

sgtfey8w1#

如果时间是1:20你想在1:30或1:20开始呢?第二,当它是1:50时,你想在2:00或1:50开始?在这两个例子中,我假设你想在1:30和2:00开始:

<?php
$hour = date('H');
$min = date('i');
echo 'Current time '.$hour.':'.$min;
if($min <=30){
  $min = '30';
} else {
  $min= '00';
  $hour +=1;
  if($hour > 23){
    $hour ='00';
  }
}
$start = $hour.':'.$min;
echo 'Modified time '.$start;
$end = "19: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>';
3okqufwl

3okqufwl2#

如果已经过了9点,请调整开始时间:

<?php

 // time.php
date_default_timezone_set('Europe/London');

$start = "05:00";
$end = "19:30";

$now = time();
// Normalize Now to next 1/2 hour
$now = ($now - ($now % 1800)) + 1800;

$tStart = $now > strtotime($start) ? $now : strtotime($start);
$tEnd = strtotime($end);

echo '<select name="schedule_time">' . PHP_EOL;
while($tStart <= $tEnd){
    echo '<option value="'.date("H:i:s",$tStart).'">'.date("H:i:s",$tStart).'</option>' . PHP_EOL;
    $tStart+= 1800;
}
echo '</select>';

相关问题