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; } }