如何在php中创建下拉列表时间更改



我想有一个下拉列表时间的变化。时间在当前时间后1.5小时开始。所以,如果当前时间是10:31,然后是第一个可用时间是下午12:30 -1:00

,如果当前时间是下午2:31第一个可用时间是下午2:30 -3:00。

这里是下拉菜单

12:30pm - 1:00pm下午1时至1时30分下午1:30至2:00下午2时至3时30分下午2:30 - 3:00下午3时至3时30分下午3:30 - 4:00下午4时至4时30分下午5时至5时30分下午5:30 - 6:00

帮忙吗?谢谢!非常感谢帮助!

使用timedate函数,大约半小时

$timeAtHalfHour = time() - ( time() % (60*30));
//$timeAtHalfHour += 90*60;  //IDK IF YOU WANT THIS?
$endTime = strtotime('6:00 pm');
$numIntervals = ($endTime - $timeAtHalfHour) / (60*30);
echo "<select name='timeInterval'>";
$strTime1 = date('h:iA', $timeAtHalfHour);
foreach(range(1,$numIntervals) as $cur)
{
   $thisTime = $timeAtHalfHour + 30*60*$cur;
   $strTime2 = date('h:iA', $thisTime);
   echo "<option value=$cur>$strTime1 - $strTime2 </option><br />";
   $strTime1 = $strTime2;
}
echo "</select>";

编辑

$timeAtHalfHour = time() - ( time() % (60*30));
//$timeAtHalfHour += 90*60;  //IDK IF YOU WANT THIS?
$endTime = strtotime('6:00 pm');
$numIntervals = ($endTime - $timeAtHalfHour) / (60*30);
$strTime1a = date('h:iA', $timeAtHalfHour); $strTime2a = date('h:iA', $timeAtHalfHour + 4*60*30);
$optionStr1 = ''; $optionStr2 = '';
foreach(range(1,$numIntervals) as $cur)
{
   $thisTime1 = $timeAtHalfHour + 30*60*$cur; $thisTime2 = $thisTime1 + (60*30*4);
   $strTime1b = date('h:iA', $thisTime1); $strTime2b = date('h:iA', $thisTime2);
   $optionStr1 .= "<option value=$cur>$strTime1a - $strTime1b </option><br />";
   $optionStr2 .= "<option value=$cur>$strTime2a - $strTime2b </option><br />";
   $strTime1a = $strTime1b; $strTime2a = $strTime2b;
}
echo "<select name='firstTime'>$optionStr1</select>";
echo "<select name='secondTime'>$optionStr2</select>";

它几乎使第二次与第一次平行,只提前了4个半小时。

你可以做的是:—对于下拉列表中的每个时间段,计算开始时间的unix时间戳(strtotime())。然后计算当前时间戳(time())。然后删除所有开始时间的时间戳小于当前时间90*60秒的时间段:if($curTime+(90*60) > $startTimestampOfPeriod){}

最新更新