• Модуль: report
  • Путь к файлу: ~/bitrix/modules/report/lib/visualconstructor/fields/valuable/timeperiod.php
  • Класс: BitrixReportVisualConstructorFieldsValuableTimePeriod
  • Вызов: TimePeriod::prepareTimePeriodForQuarter
private function prepareTimePeriodForQuarter($value)
{
	$year = (int)$value['year'];
	$startYear = $endYear = $year;
	$quarter = (int)$value['quarter'];
	$quarterStartMonth = 1 + ($quarter - 1) * 3;
	if ($quarterStartMonth < 10)
	{
		$quarterStartMonth = '0' . $quarterStartMonth;
	}

	$quarterEndMonth = 1 + $quarter * 3;
	if ($quarterEndMonth < 10)
	{
		$quarterEndMonth = '0' . $quarterEndMonth;
	}
	elseif ($quarterEndMonth === 13)
	{
		$endYear++;
		$quarterEndMonth = '01';
	}

	$quarterStartStr = $startYear . '-' . $quarterStartMonth . '-01 00:00';
	$quarterEndStr = $endYear . '-' . $quarterEndMonth . '-01 00:00';
	$result = array(
		'start' => new DateTime($quarterStartStr, 'Y-m-d H:i'),
		'end' => new DateTime($quarterEndStr, 'Y-m-d H:i'),
	);
	return $result;
}