2016-04-09 7 views
0

Mein Verständnis ist, dass Sie nicht zugreifen können Start und aktuelles Datum von Datum Zeitraum Objekt. Mein aktuelles php ist 5.5, gibt es einen Workaround, da ich nicht auf PHP 5.6 oder PHP 7 upgraden kann, und ich muss diese Daten bekommen.php DatePeriod Objektzugriff Start und aktuelles Datum

DatePeriod Object 
(
    [start] => DateTime Object 
     (
      [date] => 2016-04-03 00:00:00 
      [timezone_type] => 3 
      [timezone] => UTC 
     ) 

    [current] => DateTime Object 
     (
      [date] => 2016-04-10 00:00:00 
      [timezone_type] => 3 
      [timezone] => UTC 
     ) 
) 
+0

HHVM erhalten Sie Zugriff auf die 'current()' und 'rewind()' Methoden zur DatePeriod Klasse, so dass Sie auf diese Werte zugreifen; aber AFAIK keine Version von PHP gibt Ihnen Zugriff auf sie (nicht einmal 7) –

Antwort

1

DatePeriod ist eine Traversable Interface-Implementierung. Es unterstützt nur foreach-Schleife.

Sie können nur Start- und aktuelle Elemente erreichen, ist es in ein Array konvertieren:

$start = new DateTime('2016-03-01'); 
$end  = new DateTime('2016-03-31'); 

$interval = new DateInterval('P1D'); 
$period = new DatePeriod($start, $interval ,$end); 

$arPeriod = iterator_to_array($period); 

$startDate = $arPeriod[0]; 
next($arPeriod); 
$currentDate = current($arPeriod);