2016-12-21 8 views
0

私は変数の手順でバックforeachループを設定することはできません理解し、私は次のようにforループを使用したよう:バックDatePeriodループにおけるステッピング

$beginDate = new DateTime($firstday); 
$endDate = new DateTime($lastday); 
$endDate = $endDate->modify('+1 day'); 
$interval = DateInterval::createFromDateString('1 day'); 
$period = new DatePeriod($beginDate, $interval, $endDate); 

$datesArray=array(); 
foreach($period as $dt) $datesArray[]=$dt->format('Y-m-d'); 

for ($dateindex=0; $dateindex < count($datesArray); $dateindex++) { 
    ... 

がこれを行うには良い方法はありますか?

答えて

1

はい、

$interval = DateInterval::createFromDateString('-1 day'); 

を使用し、その後$endDate$beginDate間の日数の違いをうまく、そしてあなたのループ内でその違いを使用します。

$beginDate = new DateTime('2016-11-28'); 
$endDate = new DateTime('2016-12-07'); 
$endDate = $endDate->modify('+1 day'); 
$interval = DateInterval::createFromDateString('-1 day'); 
$diff = $endDate->diff($beginDate); 
$period = new DatePeriod($beginDate, $interval, $diff->days); 

$datesArray=array(); 
foreach($period as $dt) $datesArray[]=$dt->format('Y-m-d'); 

var_dump($datesArray); 
関連する問題