我正在尝试从该对象获取日期和时间:
Recurr\RecurrenceCollection Object ( [elements:Doctrine\Common\Collections\ArrayCollection:private] => Array ( [0] => Recurr\Recurrence Object ( [start:protected] => DateTime Object ( [date] => 2018-01-24 01:00:00.000000 [timezone_type] => 3 [timezone] => UTC ) [end:protected] => DateTime Object ( [date] => 2018-01-24 01:00:00.000000 [timezone_type] => 3 [timezone] => UTC ) [index:protected] => 1 ) ) )
我已经使用以下方法到达了dateTime对象:
foreach($events as $event){
$event=(array)$event;
foreach($event as $key=>$value){
echo $key.'<br>';
//echo date_format(new DateTime($value),'F d,Y');
//echo $value->format('Y-m-d H:i:s');
}
print_r($event);
}
但是现在,如果我尝试使用:echo $value->format('Y-m-d H:i:s');
它说:Call to a member function format() on integer
我不知道我在做什么错。我已经在Stack Overflow上阅读了近100篇文章,但没有任何帮助。请有人帮我解决这个问题。
我需要的是:该DateTime对象中的日期和时间。
答案 0 :(得分:1)
您无需将$event
强制转换为array
。试试这个:
foreach($events as $event){
$start = $event->getStart();
echo $start->format('Y-m-d H:i:s');
}
答案 1 :(得分:0)
这些字段是受保护的,因此无法像这样访问它们。您应该在liek public function getDate(){ return $this->date }
类中添加吸气剂,现在您可以通过$object->getDate()
访问它,或将access修饰符更改为该date属性的public。