使用此代码段:
$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 />';
}
我看到了这个错误:
注意:未定义的属性:DateTime :: $ date
无论如何,如果我在echo之前添加“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的结果。 为什么呢?
答案 0 :(得分:1)
我不确定,这可能是一个错误。但是您只需要使用这样的$day
对象:
foreach($days as $day){
echo $day->format('Y-m-d')."\n";
}
我猜测打印$day
对象会以某种方式对其进行初始化,然后您就可以使用其成员变量。
PS。你真的不需要iterator_to_array来迭代DatePeriod
对象。您可以执行foreach ($periods as $day)