Просмотр поста

.
Jahak

Koenig,

Календарик (+/-)

// объявляем класс даты с заданной временной зоной
$date = new DateTime('now', new DateTimeZone('Asia/Yekaterinburg'));
// вычиляем сколь дней в месяце
$daysInMonth = [1 => 31, (((bool) $date->format('L')) ? 29 : 28), 31, 30, 31, 30,
    31, 31, 30, 31, 30, 31];
$dayNames = [
    'Mon' => 'Пн',
    'Tue' => 'Вт',
    'Wed' => 'Ср',
    'Thu' => 'Чт',
    'Fri' => 'Пт',
    'Sat' => 'Сб',
    'Sun' => 'Вс',
];
$dayNamesArray = [];
foreach ( array_keys($dayNames) as $name )
{
    $dateA = [];
    for ( $index = 1; $index <= $daysInMonth[(int) $date->format('n')]; $index++ )
    {
        if ( $name == date('D', mktime($date->format('H'), $date->format('i'), $date->format('s'), $date->format('m'), $index, $date->format('Y'))) )
        {
            $dateA[] = $index;
        }
    }
    unset($index);
    $dayNamesArray[$dayNames[$name]] = $dateA;
    unset($dateA);
}
unset($daysInMonth, $dayNames, $name);
echo '<table bordercolor="#CCCCFF" border="1" cellspacing="0" cellpadding="4">';
echo '<caption>' . str_replace(['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'], date('F Y')) . ' г.</caption>';
foreach ( $dayNamesArray as $key => $value )
{
    echo '<tr><th>' . $key . '</th>' . PHP_EOL;
    foreach ( $value as $v )
    {
        if ( $date->format('j') == $v )
        {
            echo '<td style="background-color: #CCCCFF;">' . $v . '</td>' . PHP_EOL;
        }
        else
        {
            if ( 'Сб' == $key || 'Вс' == $key )
            {
                echo '<td style="background-color: #FACEB0;">' . $v . '</td>' . PHP_EOL;
            }
            else
            {
                echo '<td>' . $v . '</td>' . PHP_EOL;
            }
        }
    }
    unset($v);
    echo '</tr>' . PHP_EOL;
}
unset($date, $dayNamesArray, $value, $key);
echo '</table>';

Прикрепленные файлы: