Встала задача найти временные периоды с начала по окончанию 6 следующих месяцев. Возможно есть более элегантное решение, но вот мой вариант функции:
[source language=’php’]
/**
* @desc Функция отщитывает 6 вперед месяце начиная с текущего
* @return [01] => Array([D_COUNT] => 31, [M_NAME] => Январь, [DATE_FROM] => 01.01.2010, [DATE_TO] => 31.01.2010)
*/
static public function _GetDateM()
{
$sDate = ConvertTimeStamp(); # теущая дата
$_arDateM = array(’01’ => ‘Январь’, ’02’ => ‘Февраль’, ’03’ => ‘Март’, ’04’ => ‘Апрель’, ’05’ => ‘Май’, ’06’ => ‘Июнь’, ’07’ => ‘Июль’, ’08’ => ‘Август’, ’09’ => ‘Сентябрь’, ’10’ => ‘Октябрь’, ’11’ => ‘Ноябрь’, ’12’ => ‘Декабрь’);
$stmp = MakeTimeStamp($sDate, «DD.MM.YYYY»);
$arResult = array();
for ($i = 1; $i <= 6; $i++)
{
$arParam = array();
$arAdd&nbsp;&nbsp; = array(«DD» => 0, «MM» => 1, «YYYY» => 0);
$stmp&nbsp;&nbsp;&nbsp; = AddToTimeStamp($arAdd, $stmp);
$_M&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = date(«m», $stmp);
$_YYYY&nbsp;&nbsp; = date(«Y», $stmp);
$arParam[‘D_COUNT’]&nbsp;&nbsp; = cal_days_in_month(CAL_GREGORIAN, $_M, $_YYYY);
$arParam[‘M_NAME’]&nbsp;&nbsp;&nbsp; = $_arDateM[$_M];
$arParam[‘DATE_FROM’] = ’01.’ . $_M&nbsp; . ‘.’ . $_YYYY;
$arParam[‘DATE_TO’]&nbsp;&nbsp; &nbsp;&nbsp; = $arParam[‘D_COUNT’] . ‘.’ . $_M . ‘.’ . $_YYYY;
$arParam[‘DATE_MY’] = $_M . ‘.’ . $_YYYY;
$arResult[$_M] = $arParam;
}
return $arResult;
}
?>
[/source]