• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/mailingmanager.php
  • Класс: BitrixSenderMailingManager
  • Вызов: MailingManager::getDateExecute
static function getDateExecute(
	DateTime $date,
	?string $daysOfMonth = '',
	?string $dayOfWeek = '',
	?string $timesOfDay = '',
	?string $monthsOfYear = ''
)
{
	$timeOfExecute = null;

	$months = MethodSchedule::parseMonthsOfYear($monthsOfYear);
	$arDay = MethodSchedule::parseDaysOfMonth($daysOfMonth);
	$arWeek = MethodSchedule::parseDaysOfWeek($dayOfWeek);
	$arTime = MethodSchedule::parseTimesOfDay($timesOfDay);

	if(!$arTime)
		$arTime = array(0,0);

	$day = $date->format('j');
	$week = $date->format('N');
	$month = $date->format('n');

	if( (!$arDay || in_array($day, $arDay)) && (!$arWeek || in_array($week, $arWeek)) && (!$months || in_array($month, $months)) )
		$timeOfExecute = $date->setTime($arTime[0], $arTime[1]);

	return $timeOfExecute;
}