格式日期产生的变量在SilverStripe函数


Format date produced by variable in SilverStripe function

我有一个函数,旨在从SilverStripe管理中获取一些事件数据,其中一个变量旨在保存日期。我想要格式化日期,但我现在如何设置,我看到每个事件的日期输出在一行中两次:

public function getCalendarEvents(){
    if(Director::is_ajax()){
        $allEvents = array();
        foreach(CalendarEvents::get() as $Event){
            $date = $Event->EventDate.date('m-d-Y');//this is the variable I want to format
            $title = $Event->EventTitle;
            $link = $Event->EventLink;
            $time = $Event->EventTime;
            if(!array_key_exists($date, $allEvents)){
            $allEvents[$date] = array(
                array($time, $title)
              );
            }
            else{
                $existingEvents = $allEvents[$date];
                array_push($existingEvents, array(
                    array($time, $title)
                ));
                $allEvents[$date] = $existingEvents;
            }
        }
        return json_encode($allEvents);
    }
    else{
      return CalendarEvents::get();
    }
}

这个函数产生的例子是:

{"2015-07-0207-15-2015":[["18:00:00","知识就是力量"]],

我如何编辑我的代码,以防止日期被显示两次?

$Event->EventDate.date('m-d-Y')

是两个字符串的连接,不是吗?

$Event->EventDate (SS日期)与date('m-d-Y')(这个php日期)连接

也许你应该……

$date = date('m-d-Y',strtotime($Event->EventDate))