Month::setMonthBeginning

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. Month
  4. setMonthBeginning
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/recurring/datetype/month.php
  • Класс: Bitrix\Crm\Recurring\DateType\Month
  • Вызов: Month::setMonthBeginning
private function setMonthBeginning()
{
	$monthValue = (int)$this->startDate->format("n");

	if (
		$this->interval === 1
		&& $this->type === self::TYPE_DAY_OF_ALTERNATING_MONTHS
		&& (int)$this->params[Day::FIELD_INTERVAL_NAME] > 0
		&& (int)$this->startDate->format("j") > (int)$this->params[Day::FIELD_INTERVAL_NAME]
	)
	{
		$monthValue++;
	}
	elseif ($this->interval > 1)
	{
		$monthValue += $this->interval;
	}

	$yearValue = (int)$this->startDate->format("Y");

	$ratio = $monthValue / 12;
	if ($ratio > 1)
	{
		$ratio = floor($ratio);
		$monthValue = $monthValue - (12 * $ratio);
		$yearValue += $ratio;
	}
	$firstMonthDayTimestamp = mktime(0, 0, 0, $monthValue, 1, $yearValue);
	$this->monthBeginning = Date::createFromTimestamp($firstMonthDayTimestamp);
}

Добавить комментарий