public function testGetPeriodsFromMonthWithNoBreaks() { $interval = new \DateInterval('P1D'); $dates = $this->createDates(array()); $creator = new DatePeriodCreator($dates, $interval); $periods = $creator->getPeriods(); $this->assertInternalType('array', $periods); $this->assertCount(1, $periods); $this->assertInstanceOf('Hyper\\AdsBundle\\Helper\\DatePeriod', $periods[0]); $this->assertEquals('2013-03-01', $periods[0]->getStart()->format('Y-m-d')); $this->assertEquals('2013-03-30', $periods[0]->getEnd()->format('Y-m-d')); }
/** * @param \Hyper\AdsBundle\Entity\Zone $zone * @param \DateTime $from * @param \DateTime $to * * @return \Hyper\AdsBundle\Helper\DatePeriod[] */ public function getCommonDaysForZone(Zone $zone, \DateTime $from, \DateTime $to) { //przerobić na event po ipn:success //if (!$this->cache->contains(self::CACHE_ALL_PREFIX . $zone->getId())) { $this->warmUp($zone); //} $period = $this->getPeriodBetweenTwoDates($from, $to); $zoneId = $zone->getId(); $commonDays = array(); $oneDayInterval = new \DateInterval('P1D'); foreach ($period as $date) { $dateString = $date->format(self::DATE_FORMAT); $cacheId = self::CACHE_PREFIX . $zoneId . '_' . $dateString; $value = $this->cache->fetch($cacheId); if (false !== $value && $value >= $this->maxBannersInZone) { $commonDays[$dateString] = $date; } } if (empty($commonDays)) { return array(); } $datePeriodCreator = new DatePeriodCreator($commonDays, $oneDayInterval); return $datePeriodCreator->getPeriods(); }