Привет всем! Написал небольшой скрипт для постраничной навигации. Навигация по месяцам. Так месяц регистрации будет первым. Текущий месяц будет последним. Оцените написанный код. Прокомментировал для более простого понимания. Насколько такой код удачен для навигации, или может есть более быстрые скрипты или можно ее получить обращением к БД. Код (PHP): $reg_date = "2014-01-22"; // дата регистрации в системе MySQL DATE $time = date("Y-m-d", time()); // сегодняшняя дата $time = "2014-12-09"; // перезапись для проверки // ШАГ 1 получить необходимые поля // ШАГ 2 проверка на разницу в годах/месяцах // ШАГ 2.1 - если года совпадают // ШАГ 2.2 - если текущий год следует за годом регистрации // ШАГ 2.3 - если между текущим годом и годом регистрации есть промежуточные function getPagination($reg_date, $time) { //ШАГ 1 list($y_reg, $m_reg, $d_reg) = explode("-", $reg_date); list($y_today, $m_today, $d_today) = explode("-", $time); $pages = array(); // ШАГ 2.1 //если год регистрации и текущий совпадают if ($y_reg === $y_today) { for ($m=$m_reg; $m<=$m_today;$m++){ // текущий год $pages[$y_today][] = $m; } } // ШАГ 2.2 // если текущий год следует за годом регистрации (нет промещуточных) elseif ($y_today - $y_reg === 1) { for ($m=1; $m<=$m_today;$m++){ // текущий год $pages[$y_today][] = $m; } for ($m=$m_reg; $m<=12;$m++){ // год регистрации $pages[$y_reg][] = $m; } } // ШАГ 2.3 // если между текущим годом и годом регистрации есть промежуточные полные года elseif ($y_today - $y_reg > 1 ){ for ($m=1; $m<=$m_today;$m++){ // текущий год $pages[$y_today][] = $m; } $year = $y_today-1; for ($y=$y_reg+1; $y<$y_today;$y++) { //промежуточные года. for ($m=1; $m<=12;$m++){ $pages[$year][] = $m; } $year--; } for ($m=$m_reg; $m<=12;$m++){ // год регистрации $pages[$y_reg][] = $m; } } return $pages; }