- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/util/replicator/task/fromtemplate.php
- Класс: BitrixTasksUtilReplicatorTaskFromTemplate
- Вызов: FromTemplate::getYearlyDate
static function getYearlyDate($startDate, $replicateParams, $preferredTime, $ordinals, $weekDays)
{
$subType = $replicateParams["YEARLY_TYPE"] == 2 ? "weekday" : "monthday";
if ($subType == "weekday")
{
$ordinal = array_key_exists($replicateParams["YEARLY_WEEK_DAY_NUM"], $ordinals) ? $ordinals[$replicateParams["YEARLY_WEEK_DAY_NUM"]] : $ordinals[0];
$weekDay = array_key_exists($replicateParams["YEARLY_WEEK_DAY"], $weekDays) ? $weekDays[$replicateParams["YEARLY_WEEK_DAY"]] : $weekDays[0];
$month = intval($replicateParams["YEARLY_MONTH_2"]) >= 0 && intval($replicateParams["YEARLY_MONTH_2"]) < 12 ? intval($replicateParams["YEARLY_MONTH_2"]) : 0;
$month += 1;
$date = strtotime($ordinal." ".$weekDay." of ".date("Y", $startDate)."-".sprintf("%02d", $month)."-01") + $preferredTime;
if ($date <= $startDate)
{
$date = strtotime($ordinal." ".$weekDay." of ".(date("Y", $startDate) + 1)."-".sprintf("%02d", $month)."-01") + $preferredTime;
}
}
else
{
$day = intval($replicateParams["YEARLY_DAY_NUM"]) >= 1 && intval($replicateParams["YEARLY_DAY_NUM"]) <= 31 ? intval($replicateParams["YEARLY_DAY_NUM"]) : 1;
$month = intval($replicateParams["YEARLY_MONTH_1"]) >= 0 && intval($replicateParams["YEARLY_MONTH_1"]) < 12 ? intval($replicateParams["YEARLY_MONTH_1"]) : 0;
$month += 1;
$date = strtotime(date("Y", $startDate)."-".sprintf("%02d", $month)."-".sprintf("%02d", $day)) + $preferredTime;
if ($date <= $startDate)
{
$date = strtotime((date("Y", $startDate) + 1)."-".sprintf("%02d", $month)."-".sprintf("%02d", $day)) + $preferredTime;
}
}
return $date;
}