You need to display all dates from the current one, and not more than 30 days.
right now
$months = array('Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'); $month_title = $months[$month-1]; $num = cal_days_in_month(CAL_GREGORIAN, $month, $year); for($i=$day;$i<=$num;$i++) { $mktime=mktime(0,0,0,$month,$i,$year); $date = date("Ymd",$mktime); $date2 = date("Ymd",$mktime); $dayweek = strftime("%w", strtotime($date)); $dayweek=str_replace("1","Понедельник",$dayweek); $dayweek=str_replace("2","Вторник",$dayweek); $dayweek=str_replace("3","Среда",$dayweek); $dayweek=str_replace("4","Четверг",$dayweek); $dayweek=str_replace("5","Пятница",$dayweek); $dayweek=str_replace("6","Суббота",$dayweek); $dayweek=str_replace("0","Воскресенье",$dayweek); ?> <div class="tasck-list"> <div class="dc-head <? if (''.$year.''.$month.''.$day.'' == $date2) {echo 'green';}?>" date-datetime="<?=$date;?>"> <div class="dch-title"><?=new_time(strtotime($date));?></div> <div class="dch-week"><?=$dayweek;?></div> </div> <? } ?>