/** * The Multisites reports displays the first calendar date as the earliest day available for all websites. * Also, today is the later "today" available across all timezones. * @param array $siteIds Array of IDs for each site being displayed. * @return array of two Piwik_Date instances. First is the min-date & the second * is the max date. */ private function getMinMaxDateAcrossWebsites($siteIds) { $now = Piwik_Date::now(); $minDate = null; $maxDate = $now->subDay(1)->getTimestamp(); foreach ($siteIds as $idsite) { // look for 'now' in the website's timezone $timezone = Piwik_Site::getTimezoneFor($idsite); $date = Piwik_Date::adjustForTimezone($now->getTimestamp(), $timezone); if ($date > $maxDate) { $maxDate = $date; } // look for the absolute minimum date $creationDate = Piwik_Site::getCreationDateFor($idsite); $date = Piwik_Date::adjustForTimezone(strtotime($creationDate), $timezone); if (is_null($minDate) || $date < $minDate) { $minDate = $date; } } return array(Piwik_Date::factory($minDate), Piwik_Date::factory($maxDate)); }