• Не подсвечивается текущий день в календаре. Подставляю стиль по условию: число в клетке равно номеру текущего дня. Но не срабатывает

    код для удобства — http://sandbox.onlinephpfunctions.com/code/ff3538f802cd2d0f3171b48e5ff45cc945855b92

    function draw_calendar($month, $year, $action = 'none') {
                $calendar = '<table cellpadding="0" cellspacing="0" class="b-calendar__tb">';
    
                // вывод дней недели
                $headings = array('Пн','Вт','Ср','Чт','Пт','Сб','Вс');
                $calendar.= '<tr class="b-calendar__row">';
                for($head_day = 0; $head_day <= 6; $head_day++) {
                    $calendar.= '<th class="b-calendar__head';
                    // выделяем выходные дни
                    if ($head_day != 0) {
                        if (($head_day % 5 == 0) || ($head_day % 6 == 0)) {
                            $calendar .= ' b-calendar__weekend';
                        }
    				}
                    $calendar .= '">';
                    $calendar.= '<div class="b-calendar__number">'.$headings[$head_day].'</div>';
                    $calendar.= '</th>';
                }
                $calendar.= '</tr>';
    
                // выставляем начало недели на понедельник
                $running_day = date('w',mktime(0,0,0,$month,1,$year));
                $running_day = $running_day - 1;
                if ($running_day == -1) {
                    $running_day = 6;
                }
    
                $days_in_month = date('t',mktime(0,0,0,$month,1,$year));
                $day_counter = 0;
                $days_in_this_week = 1;
                $dates_array = array();
    
                // первая строка календаря
                $calendar.= '<tr class="b-calendar__row">';
    
                // вывод пустых ячеек
                for ($x = 0; $x < $running_day; $x++) {
                    $calendar.= '<td class="b-calendar__np"></td>';
                    $days_in_this_week++;
                }
    
                // дошли до чисел, будем их писать в первую строку
                for($list_day = 1; $list_day <= $days_in_month; $list_day++) {
                    $calendar.= '<td class="b-calendar__day';
    
                    // выделяем сегодняшний день
                    if ($running_day == date('j')) {
                        $calendar .= ' b-calendar__today';
                    }
    
                    // выделяем выходные дни
                    if ($running_day != 0) {
                        if (($running_day % 5 == 0) || ($running_day % 6 == 0)) {
                            $calendar .= ' b-calendar__weekend';
                        }
    				}
    				
                    $calendar .= '">';
    
                    // пишем номер в ячейку
                    $calendar.= '<div class="b-calendar__number">'.$list_day.'</div>';
                    $calendar.= '</td>';
    
                    // дошли до последнего дня недели
                    if ($running_day == 6) {
                        // закрываем строку
                        $calendar.= '</tr>';
                        // если день не последний в месяце, начинаем следующую строку
                        if (($day_counter + 1) != $days_in_month) {
                            $calendar.= '<tr class="b-calendar__row">';
                        }
                        // сбрасываем счетчики
                        $running_day = -1;
                        $days_in_this_week = 0;
                    }
    
                    $days_in_this_week++;
                    $running_day++;
                    $day_counter++;
                }
    
                // выводим пустые ячейки в конце последней недели
                if ($days_in_this_week < 8) {
                    for($x = 1; $x <= (8 - $days_in_this_week); $x++) {
                        $calendar.= '<td class="b-calendar__np"> </td>';
                    }
                }
                $calendar.= '</tr>';
                $calendar.= '</table>';
    
                return $calendar;
            }
            ?>

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

  • Тема «Не подсвечивается текущий день в календаре» закрыта для новых ответов.