2017-04-22 9 views
1

iterator_to_arrayに未定義のプロパティ(日付オブジェクト)

$dt = new DateTime(); 
$periods = new DatePeriod($dt, new DateInterval('P1D'), 6); 
$days = iterator_to_array($periods); 
foreach($days as $day){ 
    echo 'current date: '.$day->date.'<br />'; 
} 

私はこのエラーを参照してください。とにかく

Notice: Undefined property: DateTime::$date

、私はエコーの前に "ますprint_r" を追加する場合:

$dt = new DateTime(); 
$periods = new DatePeriod($dt, new DateInterval('P1D'), 6); 
$days = iterator_to_array($periods); 
foreach($days as $day){ 
    print_r($day); 
    echo 'current date: '.$day->date.'<br />'; 
} 

print_rの結果とechoの結果の両方が私のページに表示されます。 なぜですか?

+1

'$ date-> format()' [PHP DateTime :: format](http://php.net/manual/en/datetime.format.php) – Thakkie

答えて

1

わかりませんが、バグかもしれません。しかし、あなたはこれだけのようなあなたの$dayオブジェクトを使用する必要があります:私は$dayオブジェクトを印刷推測している

foreach($days as $day){ 
    echo $day->format('Y-m-d')."\n"; 
} 

何とかそれを初期化し、そしてあなたは、そのメンバ変数を使用することができます。

PS。 DatePeriodオブジェクトを反復処理するためにiterator_to_arrayを実際に使用する必要はありません。 foreach ($periods as $day)

+0

を使用してください。 'foreach($ periods as $ day)'、私は同じ通知を受け取ります。 day-> formatでは、正常に動作します。 – Infocurci

+0

通知を受け取るべきではありません。php.netサイトの例では、そのループだけが使用されています。とにかく、あなたのコードが動作する限り:) – gaganshera

関連する問題