2017-04-22 126 views
1

在這個片段:未定義的屬性(Date對象)

$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對象這樣才:

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

我猜打印$day對象初始化它在某種程度上,和你能夠使用其成員變量即可。

PS。你並不需要iterator_to_array遍歷DatePeriod對象。你可以簡單地做一些事情,如foreach ($periods as $day)

+0

With 'foreach($美元爲美元日)',我收到了同樣的通知。 使用day->格式,它工作正常。 – Infocurci

+0

您不應該收到通知,php.net網站上的示例僅使用該循環。無論如何,只要你的代碼工作:) – gaganshera