2015-07-15 1 views
2

J'ai une fonction qui est destinée à obtenir des données d'événements de l'admin SilverStripe, et l'une des variables est destinée à contenir une date. Je veux formater la date, mais comment j'ai des choses mises en place en ce moment, je vois la sortie de date deux fois de suite pour chaque événement:Date du format générée par la variable dans la fonction 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(); 
    } 
} 

Et exemple de ce que cette fonction produit est la suivante: { "2015 -07-0207-15-2015 ": [[" 18:00:00 "," Knowledge is Power "]],

Comment puis-je modifier mon code pour empêcher l'affichage de la date deux fois?

Répondre

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

est une concaténation de deux chaînes n'est ce pas?

$ event-> EventDate (la date de SS) concaténé avec la date ('MD-Y') (cette date php)

peut-être vous devriez faire ...

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

Cela semble avoir résolu le problème ... merci! –