Pytanie co robię źle.
Generuje zakres czasowy
$period_tmp = new DatePeriod( new DateTime($FromTime), new DateInterval('PT8H'), new DateTime($ToTime) );
Wygląda to tak jak potrzebuje
DatePeriod Object ( (start) => DateTime Object ( (date) => 2016-01-01 22:00:00 (timezone_type) => 3 (timezone) => Europe/Berlin ) (current) => (end) => DateTime Object ( (date) => 2016-02-29 15:00:00 (timezone_type) => 3 (timezone) => Europe/Berlin ) (interval) => DateInterval Object ( (y) => 0 (m) => 0 (d) => 0 (h) => 8 (i) => 0 (s) => 0 (weekday) => 0 (weekday_behavior) => 0 (first_last_day_of) => 0 (invert) => 0 (days) => (special_type) => 0 (special_amount) => 0 (have_weekday_relative) => 0 (have_special_relative) => 0 ) (recurrences) => 1 (include_start_date) => 1 )
Robie z tego tablicę
foreach ($period_tmp as $date_tmp) { $dates_tmp()= $date_tmp->format("Y-m-d H:m:s"); }
No i mam przesunięcie czasowe na starcie o minutę? Dla Start From w tym przykładzie 2016-01-01 22:00:00 interwał ma być co 8h
Array ( 0 => 2016-01-01 22:01:00 1 => 2016-01-02 06:01:00 wycięte wiadomo zakres od do 173 => 2016-02-28 14:02:00 174 => 2016-02-28 22:02:00 175 => 2016-02-29 06:02:00 176 => 2016-02-29 14:02:00 )
Oczywiście błąd czasowy się zwiększa ze zwiększeniem zakresu.
Mogę to ominąć skracając (interesują mnie pełne godziny) do
$dates_tmp()= $date_tmp->format("Y-m-d H:00:00");
Ale nie mam pojęcia skąd te przesunięcie powstaje. Nawiasy pozamieniane z racji bbcode