• Модуль: seo
  • Путь к файлу: ~/bitrix/modules/seo/lib/adv/yandexstat.php
  • Класс: BitrixSeoAdvYandexStatTable
  • Вызов: YandexStatTable::getMissedPeriods
static function getMissedPeriods(array $stats, $dateStart, $dateFinish)
{
	$missedPeriods = array();

	$datePrevoius = false;

	$checkDate = new Date($dateStart);
	$dateCurrent = new Date($dateStart);
	$dateFinish = new Date($dateFinish);

	while($dateCurrent->getTimestamp() <= $dateFinish->getTimestamp())
	{
		if(!array_key_exists($dateCurrent->toString(), $stats))
		{
			if(
				!$datePrevoius
				|| $dateCurrent->getTimestamp() >= $checkDate->getTimestamp()
			)
			{
				$missedPeriods[] = array(
					$dateCurrent->toString(),
					$dateCurrent->toString()
				);

				$checkDate = new Date($dateCurrent->toString());
				$checkDate->add("+".YandexDirect::MAX_STAT_DAYS_DELTA." days");

				$datePrevoius = true;
			}
			else
			{
				$missedPeriods[count($missedPeriods)-1][1] = $dateCurrent->toString();
			}
		}
		else
		{
			$datePrevoius = false;
		}

		$dateCurrent->add("+1 days");
	}

	return $missedPeriods;
}