在php中计算2个时间之间的时间段列表


Calculate time period list between 2 time in php?

我想在两次之间生成3个时间段列表列。

if
$start_time = '08:00 AM';
$end_time = '10:00: PM';
Time Period List As: 
Morning ----- Noon ----- Eve
8:00 AM       1:00 PM    6:00 PM
8:30 AM       1:30 PM    6:30 PM
9:00 AM       2:.0 PM    7:00 PM
to            to         to
...           ...        ...
12:00 PM      5:00 PM    10:00 PM

我已经将$start_time和$end_time之间的时间计算为:

$time = time();
$rounded_time = $time % 900 > 450 ? $time += (900 - $time % 900):  $time -= $time % 900;
$start = strtotime('08:00 AM');
$end = strtotime('10:00 PM');
 for( $i = $start; $i <= $end; $i += 1800) 
 {
    echo  "<input name='start_time' type='radio' value='".date('g:i A', $i)."' />"." ".date('g:i A', $i)."<br>";
 }

如上文所述,将这些时间划分为三列的剩余工作

提前感谢我所有的伙伴。

您可以使用strtotime方法从给定时间添加和减去时间段。例如:

$time = strtotime('10:00'); 
$halfAnHourBefore = date("H:i", strtotime('-30 minutes', $time)); 
$halfAnHourAfter = date("H:i", strtotime('+30 minutes', $time)); 

将$halfAnHourBefore作为09:30,将$half-AnHourAfter作为10:30