无法访问对象

时间:2019-01-25 12:05:28

标签: php laravel

我正在尝试从该对象获取日期和时间: 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对象中的日期和时间。

2 个答案:

答案 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。