• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/util/replicator/task/fromtemplate.php
  • Класс: BitrixTasksUtilReplicatorTaskFromTemplate
  • Вызов: FromTemplate::getDailyDate
static function getDailyDate($baseTime, $replicateParams, $preferredTime)
{
	$num =
		(int)$replicateParams["EVERY_DAY"]
		+ (int)($replicateParams["DAILY_MONTH_INTERVAL"] ?? 0)
	;

	$date = static::stripTime($baseTime) + $preferredTime;

	if ($date <= $baseTime)
	{
		$date += 86400 * $num;
	}

	if ($replicateParams["WORKDAY_ONLY"] == "Y")
	{
		// get server datetime as string and create an utc-datetime object with this string, as Calendar works only with utc datetime object
		$dateInst = UtilTypeDateTime::createFromUserTimeGmt(UI::formatDateTime($date));
		$calendar = new UtilCalendar();

		if (!$calendar->isWorkTime($dateInst))
		{
			$cwt = $calendar->getClosestWorkTime($dateInst); // get closest time in UTC
			$cwt = $cwt->convertToLocalTime(); // change timezone to server timezone

			$date = $cwt->getTimestamp(); // set server timestamp
			$date = static::stripTime($date) + $preferredTime;
		}
	}

	return $date;
}