时间间隔添加的php代码更正

时间间隔添加的php代码更正,php,Php,这是我当前的代码,下面是这段代码的输出。但我需要对此进行一些更正 $startTimeInterval = 15; $duration = 20; $open = '2017-09-29T10:00:00-05:00'; $close = '2017-09-29T17:30:00-05:00'; $startTimeInterval = $startTimeInterval.' minutes'; $interval = DateInterval::createFromDateString($

这是我当前的代码,下面是这段代码的输出。但我需要对此进行一些更正

$startTimeInterval = 15;
$duration = 20;
$open = '2017-09-29T10:00:00-05:00';
$close = '2017-09-29T17:30:00-05:00';

$startTimeInterval = $startTimeInterval.' minutes';
$interval = DateInterval::createFromDateString($startTimeInterval);
$begin = new DateTime($open);
$end = new DateTime($close);
$end->add($interval);

$periods = iterator_to_array(new DatePeriod($begin, $interval, $end));

$start = array_shift($periods);
$slot = array();
foreach ($periods as $time) {
    $slot[]= $start->format('h:iA'). ' - '. $time->format('h:iA');
    $start = $time;
}
echo '<pre>';print_r($slot);exit;
我需要这个

foreach ($periods as $time) {
    $clonedTime = clone $time;
    $clonedTime->modify('+5 minutes');

    $slot[]= $start->format('h:iA'). ' - '. $clonedTime->format('h:iA');
    $start = $time;
}

水平方向它将增加持续时间,垂直方向它将增加开始时间间隔

也许这是一个解决方案:

您的
$time
属于

您可以使用
$time
并在循环中添加5分钟

例如:

Array
(
    [0] => 10:00AM - 10:20AM
    [1] => 10:15AM - 10:35AM
    [2] => 10:30AM - 10:50AM
    [3] => 10:45AM - 11:05AM
    [4] => 11:00AM - 11:20AM
    [5] => 11:15AM - 11:35AM
    [6] => 11:30AM - 11:50AM
    [7] => 11:45AM - 12:05PM
    [8] => 12:00PM - 12:20PM
    [9] => 12:15PM - 12:35PM
    [10] => 12:30PM - 12:50PM
    [11] => 12:45PM - 01:05PM
    [12] => 01:00PM - 01:20PM
    [13] => 01:15PM - 01:35PM
    [14] => 01:30PM - 01:50PM
    [15] => 01:45PM - 02:05PM
    [16] => 02:00PM - 02:20PM
    [17] => 02:15PM - 02:35PM
    [18] => 02:30PM - 02:50PM
    [19] => 02:45PM - 03:05PM
    [20] => 03:00PM - 03:20PM
    [21] => 03:15PM - 03:35PM
    [22] => 03:30PM - 03:50PM
    [23] => 03:45PM - 04:05PM
    [24] => 04:00PM - 04:20PM
    [25] => 04:15PM - 04:35PM
    [26] => 04:30PM - 04:50PM
    [27] => 04:45PM - 05:05PM
    [28] => 05:00PM - 05:20PM
    [29] => 05:15PM - 05:35PM
)
将导致:


也许这是一个解决方案:

您的
$time
属于

您可以使用
$time
并在循环中添加5分钟

例如:

Array
(
    [0] => 10:00AM - 10:20AM
    [1] => 10:15AM - 10:35AM
    [2] => 10:30AM - 10:50AM
    [3] => 10:45AM - 11:05AM
    [4] => 11:00AM - 11:20AM
    [5] => 11:15AM - 11:35AM
    [6] => 11:30AM - 11:50AM
    [7] => 11:45AM - 12:05PM
    [8] => 12:00PM - 12:20PM
    [9] => 12:15PM - 12:35PM
    [10] => 12:30PM - 12:50PM
    [11] => 12:45PM - 01:05PM
    [12] => 01:00PM - 01:20PM
    [13] => 01:15PM - 01:35PM
    [14] => 01:30PM - 01:50PM
    [15] => 01:45PM - 02:05PM
    [16] => 02:00PM - 02:20PM
    [17] => 02:15PM - 02:35PM
    [18] => 02:30PM - 02:50PM
    [19] => 02:45PM - 03:05PM
    [20] => 03:00PM - 03:20PM
    [21] => 03:15PM - 03:35PM
    [22] => 03:30PM - 03:50PM
    [23] => 03:45PM - 04:05PM
    [24] => 04:00PM - 04:20PM
    [25] => 04:15PM - 04:35PM
    [26] => 04:30PM - 04:50PM
    [27] => 04:45PM - 05:05PM
    [28] => 05:00PM - 05:20PM
    [29] => 05:15PM - 05:35PM
)
将导致:


因此,将
$startTimeInterval
15
更改为
20
,否?@chris85检查此链接我正在进行此类工作。您甚至没有在代码中使用
$duration
,这只是一个定义。你需要计算一段时间的日期,一段时间的持续时间,我给你一个演示。我想让像上面的链接。这是我的意见$startTimeInterval=15$持续时间=20$开放时间='2017-09-29T10:00:00-05:00'$关闭时间='2017-09-29T17:30:00-05:00';我想和这个链接一样,你们知道产生这个结果的逻辑吗?@Santa'shelper直到现在我还没有使用$duration。这是为了你的理解。我需要为每行添加10:00AM的开始时间+$duration。下一行将使用10:00AM+$starttimeintervals将
$startTimeInterval
15
更改为
20
,否?@chris85检查此链接我正在进行此类工作。您甚至没有在代码中使用
$duration
,这只是一个定义。你需要计算一段时间的日期,一段时间的持续时间,我给你一个演示。我想让像上面的链接。这是我的意见$startTimeInterval=15$持续时间=20$开放时间='2017-09-29T10:00:00-05:00'$关闭时间='2017-09-29T17:30:00-05:00';我想和这个链接一样,你们知道产生这个结果的逻辑吗?@Santa'shelper直到现在我还没有使用$duration。这是为了你的理解。我需要为每行添加10:00AM的开始时间+$duration。下一行是上午10:00+startTimeInterval美元
Array
(
    [0] => 10:00AM - 10:20AM
    [1] => 10:15AM - 10:35AM
    [2] => 10:30AM - 10:50AM
    [3] => 10:45AM - 11:05AM
    [4] => 11:00AM - 11:20AM
    [5] => 11:15AM - 11:35AM
    [6] => 11:30AM - 11:50AM
    [7] => 11:45AM - 12:05PM
    [8] => 12:00PM - 12:20PM
    [9] => 12:15PM - 12:35PM
    [10] => 12:30PM - 12:50PM
    [11] => 12:45PM - 01:05PM
    [12] => 01:00PM - 01:20PM
    [13] => 01:15PM - 01:35PM
    [14] => 01:30PM - 01:50PM
    [15] => 01:45PM - 02:05PM
    [16] => 02:00PM - 02:20PM
    [17] => 02:15PM - 02:35PM
    [18] => 02:30PM - 02:50PM
    [19] => 02:45PM - 03:05PM
    [20] => 03:00PM - 03:20PM
    [21] => 03:15PM - 03:35PM
    [22] => 03:30PM - 03:50PM
    [23] => 03:45PM - 04:05PM
    [24] => 04:00PM - 04:20PM
    [25] => 04:15PM - 04:35PM
    [26] => 04:30PM - 04:50PM
    [27] => 04:45PM - 05:05PM
    [28] => 05:00PM - 05:20PM
    [29] => 05:15PM - 05:35PM
)