Example #1
0
 /**
  * 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));
 }