示例#1
0
 public function getLastDate($date, $period, $comparedToXPeriods)
 {
     $pastDate = Range::getDateXPeriodsAgo(abs($comparedToXPeriods), $date, $period);
     if (empty($pastDate[0])) {
         throw new \Exception('Not possible to compare this date/period combination');
     }
     return $pastDate[0];
 }
 private function getOldestDateToProcessForNewSegment(Date $segmentCreatedTime)
 {
     if ($this->processNewSegmentsFrom == self::CREATION_TIME) {
         $this->logger->debug("process_new_segments_from set to segment_creation_time, oldest date to process is {time}", array('time' => $segmentCreatedTime));
         return $segmentCreatedTime;
     } elseif (preg_match("/^last([0-9]+)\$/", $this->processNewSegmentsFrom, $matches)) {
         $lastN = $matches[1];
         list($lastDate, $lastPeriod) = Range::getDateXPeriodsAgo($lastN, $segmentCreatedTime, 'day');
         $result = Date::factory($lastDate);
         $this->logger->debug("process_new_segments_from set to last{N}, oldest date to process is {time}", array('N' => $lastN, 'time' => $result));
         return $result;
     } else {
         $this->logger->debug("process_new_segments_from set to beginning_of_time or cannot recognize value");
         return null;
     }
 }
 private function getOldestDateToProcessForNewSegment($idSite, $segment)
 {
     /**
      * @var Date $segmentCreatedTime
      * @var Date $segmentLastEditedTime
      */
     list($segmentCreatedTime, $segmentLastEditedTime) = $this->getCreatedTimeOfSegment($idSite, $segment);
     if ($this->processNewSegmentsFrom == self::CREATION_TIME) {
         $this->logger->debug("process_new_segments_from set to segment_creation_time, oldest date to process is {time}", array('time' => $segmentCreatedTime));
         return $segmentCreatedTime;
     } elseif ($this->processNewSegmentsFrom == self::LAST_EDIT_TIME) {
         $this->logger->debug("process_new_segments_from set to segment_last_edit_time, segment last edit time is {time}", array('time' => $segmentLastEditedTime));
         if ($segmentLastEditedTime === null || $segmentLastEditedTime->getTimestamp() < $segmentCreatedTime->getTimestamp()) {
             $this->logger->debug("segment last edit time is older than created time, using created time instead");
             $segmentLastEditedTime = $segmentCreatedTime;
         }
         return $segmentLastEditedTime;
     } elseif (preg_match("/^last([0-9]+)\$/", $this->processNewSegmentsFrom, $matches)) {
         $lastN = $matches[1];
         list($lastDate, $lastPeriod) = Range::getDateXPeriodsAgo($lastN, $segmentCreatedTime, 'day');
         $result = Date::factory($lastDate);
         $this->logger->debug("process_new_segments_from set to last{N}, oldest date to process is {time}", array('N' => $lastN, 'time' => $result));
         return $result;
     } else {
         $this->logger->debug("process_new_segments_from set to beginning_of_time or cannot recognize value");
         return null;
     }
 }