我有一个静态数组
$times = array("09:00","09:30","10:00","10:30","11:00","11:30","12:00","12:30");
现在我想变得充满活力(根据开始时间和close_time),这意味着我有start_time =“ 09:00”并且 close_time =“ 21:00”,则数组应类似于以下结果。
$times = array("09:00","09:30","10:00","10:30".......,"20:30","21:00");
答案 0 :(得分:3)
您可以按照以下示例操作:-
$startTime = new DateTime('2019-01-15 09:00'); //or you can pass time only. example - new DateTime('09:00');
$endTime = new DateTime('2019-01-15 21:00'); //or you can pass time only. example - new DateTime('21:00');
$timeStep = 30;
$timeArray = array();
while($startTime <= $endTime)
{
$timeArray[] = $startTime->format('H:i');
$startTime->add(new DateInterval('PT'.$timeStep.'M'));
}
echo json_encode($timeArray);
输出
["09:00","09:30","10:00","10:30","11:00","11:30","12:00","12:30","13:00","13:30","14:00","14:30","15:00","15:30","16:00","16:30","17:00","17:30","18:00","18:30","19:00","19:30","20:00","20:30","21:00"]
答案 1 :(得分:0)
您还可以使用DatePeriod
将时间遍历到数组中:
$start_time = new DateTime('09:00');
$close_time = new DateTime('21:00');
$periods = new DatePeriod($start_time, new DateInterval('PT30M'), $close_time);
foreach ($periods as $period) {
$times[] = $period->format('H:i');
}
// DatePeriod excludes the end time
$times[] = $close_time->format('H:i');
print_r($times);
输出:
Array ( [0] => 09:00 [1] => 09:30 [2] => 10:00 [3] => 10:30
[4] => 11:00 [5] => 11:30 [6] => 12:00 [7] => 12:30
[8] => 13:00 [9] => 13:30 [10] => 14:00 [11] => 14:30
[12] => 15:00 [13] => 15:30 [14] => 16:00 [15] => 16:30
[16] => 17:00 [17] => 17:30 [18] => 18:00 [19] => 18:30
[20] => 19:00 [21] => 19:30 [22] => 20:00 [23] => 20:30
[24] => 21:00
)