2012-02-16 33 views
0

開始日と終了日を$interval(または月)のチャンクに分割する機能はありますか?たとえば:PHPで開始日と終了日を間隔で区切る

$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は助けることができると思いますが、私はそれを使用することができますどのようにどのような方法を見つけられませんでした。

+0

*(先端)* HTTP取り組んでいる:// derickrethansを.nl/talks/time-zendcon10.pdf – Gordon

+2

@Gordonありがとう、申し訳ありません、私はそれが重複していることを認識していませんでした。閉鎖の投票。 – gremo

答えて

2

how to iterate over valid calender daysをご確認ください。

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); 
} 
1

月にわたり、日を反復処理する例です。その何かが他の区間とそれに応じて

<?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>"; 
} 
?> 
関連する問題