Разделение даты начала и окончания по интервалу в PHP [дублировать
-
26-10-2019 - |
Вопрос
Этот вопрос уже имеет ответ здесь:
Есть ли какая -либо функция, чтобы разделить дату начала и окончания на чушь $interval
Дни (или месяцы)? Например:
$interval = new DateInterval('P10D');
$start = new DateTime('2012-01-10');
$end = new DateTime('2012-02-16');
$chunks = splitOnInterval($start, $end, $interval);
// Now chunks should contain
//$chunks[0] = '2012-01-10'
//$chunks[1] = '2012-01-20'
//$chunks[2] = '2012-01-30'
//$chunks[3] = '2012-02-09'
//$chunks[3] = '2012-02-16'
Я думаю DatePeriod
могу помочь, но я не нашел никакого способа, как я могу его использовать.
Решение
Проверьте эту статью на Как итерация в течение действительных дней календаря.
В PHP это что -то вроде,
$start = strtotime('2012-01-10');
$end1 = strtotime('2012-02-16');
$interval = 10*24*60*60; // 10 days equivalent seconds.
$chunks = array();
for($time=$start; $time<=$end1; $time+=$interval){
$chunks[] = date('Y-m-d', $time);
}
Другие советы
Вот пример для итерации в течение нескольких дней, в течение месяца работает соответственно с другим интервалом
<?php
$begin = new DateTime( '2012-11-01' );
$end = new DateTime( '2012-11-11' );
$end = $end->modify( '+1 day' );
$interval = new DateInterval('P1D');
$daterange = new DatePeriod($begin, $interval ,$end);
foreach($daterange as $date){
echo $date->format("Y-m-d") . "<br>";
}
?>
Не связан с StackOverflow