Войти
Android, Windows, Apple, Ликбез. Социальные сети. Драйверы
  • Японские телефоны Новый японский смартфон
  • Lenovo G500S: характеристики, основные особенности
  • Определяем серию продукта видеокарт Nvidia Характеристики карты nvidia 9800 gt
  • А конкуренты у смартфона есть
  • Что такое расширение файла TRZ?
  • Не работает динамик в "айфоне"
  • Как создать календарь в php. Как написать php календарь на месяц и на год? Javascript код для перематывание месяцев

    Как создать календарь в php. Как написать php календарь на месяц и на год? Javascript код для перематывание месяцев

    Недавно возникла потребность создать календарь событий, где каждая дата в календаре будет подсвечена ссылкой, если какое-нибудь событие присутствует для каждого числа. Если мне разрешат оставить ссылку, .

    Задача вроде бы не сложная, но среди немногочисленных решений в интернете я не нашел подходящего по следующим причинам: слишком сложный и непонятный код, медленные запросы к БД (это особенно ощущается, если в базе много записей), использование библиотеки jQuery, к которой я отношусь не очень хорошо.

    Итак, к плюсам моего календаря можно отнесли следующее:

  • Весь код помещается в 200 строчек и состоит из одного файла, который подключается через include
  • Скрипт состоит из чистого php + javascript без использования библиотеки jQuery
  • Используются простые и оптимизированные запросы к БД
  • Подгрузка следующего (предыдущего) месяца происходит через AJAX
  • Теперь обо всем по-порядку.Логика Календарь генерируется средствами php для текущего месяца. Для каждого дня проверяем нет ли записей в БД, если есть, - формируем ссылку на событие. Дописываем javascript код для перелистывание месяцев, который обращается к скрипту через ajax. Задача усложняется тем, что события растянуты во времени, то есть, начинаются в один день, а заканчиваются через несколько дней или даже месяцев. На всем временном промежутке существование события нужно его подсветить ссылкой для каждого дня.Генерируем календарь на PHP

    Javascript код для перематывание месяцев Он немного упрощен для наглядности (отсутствуют эффекты скольжения):

    var mon = parseInt(""); var year = parseInt(); function monthf(pn){ if (pn == "next"){ mon++; }else if (pn == "prev"){ mon--; }else{ alert("Неправильный параметр"); return false; } if (mon > 12){ year ++; mon = 1; } if (mon < 1){ year --; mon = 12; } if ((mon < 10) && (mon >= 1)){ mon = "0"+mon; } var nextDate = year+"-"+mon+"-00"; var ajaxaddr = "путь_к_текущему_скрипту?date="+nextDate; var http = new XMLHttpRequest(); if (http) { http.open("get", ajaxaddr); http.onreadystatechange = function () { if(http.readyState == 4){ if (http.status == 200) { document.getElementById("calendar").innerHTML = http.responseText; } } } http.send(null); } }

    Закрываем тег таблицы:

    Выводы Таким образом получился простой и легко встраиваемый календарь событий, который быстро работает и легко настраивается, работающий на чистом PHP+javascript без дополнительных библиотек.

    В преддверии нового года возникла весьма тривиальная задача — сделать сайт-календарь, где для каждого месяца необходимо было вывести свой календарь на месяц. Первым этапом решения задачи — стал поиск готовых решений. После перебора десятка приведенных в интернете решений выбор был сделан. Какие-то версии и вовсе оказались нерабочими, какие-то слишком громоздкими — их пришлось бы изрядно «попилить», чтобы получить требуемый результат. Итак, рассмотрим как написать простой календарь на php.

    Основа скрипта была найдена на просторах интернета, ошибки были исправлены, кое-что было доделано, в частности добавлена функциональность выделения выходных дней отдельным css-классом.

    Реализация календаря на месяц на чистом PHP без использования mySQL, jQuery и т.д. приведена ниже:

    На вход функция draw_calendar получает порядковый номер месяца и год. Результатом исполнения функции является html-код календаря на заданный месяц. Использовать вышеприведенную функцию несложно, и сможет даже новичок в веб-разработке. Пример ниже выведет календарь на январь 2016 год.

    Январь "16

    Вывод подписи к календарю, включающей в себя название месяца и год, намеренно не был включен в функцию, чтобы ее можно было свободно изменять, а возможно и вовсе убрать.

    Php-календарь на год

    Из приведнной выше функции можно легко получить php-скрипт календаря на год, причем на любой. Для этого достаточно в цикле перебрать все месяцы и для каждого из них вызвать функцию вывода календаря на месяц.

    Однако при этом потребуется завести массив со списком названий месяцев на русском языке, поскольку получить названия месяцев из php можно лишь на английском.

    Код в таком случае будет следующим:

    "16

    Примеры приведенные в данном посте вы можете скачать с гитхаба .

    Одним из важных элементов на сайте является календарь, с помощью которого ваши пользователи могут отслеживать события, появления новых продуктов. Или просто читать записи или еще что только не придумаешь. Уделив несколько времени этому уроку, вы узнаете, как создать PHP скрипт календаря для своего сайта. Мы не будем ограничиваться только программированием, также обратим внимание на css и html структуру календаря. Одним словом сделаем все, от начала до конца!

    CSS

    Меньше слов, больше дела. Сразу же начнем из css стилей календаря. Ниже предоставленный код, совместим с проблемным браузером IE6.

    /* календарь */ table.calendar { border-left:1px solid #999; } tr.calendar-row { } td.calendar-day { min-height:80px; font-size:11px; position:relative; } * html div.calendar-day { height:80px; } td.calendar-day:hover { background:#eceff5; } td.calendar-day-np { background:#eee; min-height:80px; } * html div.calendar-day-np { height:80px; } td.calendar-day-head { background:#ccc; font-weight:bold; text-align:center; width:120px; padding:5px; border-bottom:1px solid #999; border-top:1px solid #999; border-right:1px solid #999; } div.day-number { background:#999; padding:5px; color:#fff; font-weight:bold; float:right; margin:-5px -5px 0 0; width:20px; text-align:center; } td.calendar-day, td.calendar-day-np { width:120px; padding:5px; border-bottom:1px solid #999; border-right:1px solid #999; }

    PHP

    Весь PHP код скрипта календаря, в основном базируется на одной функции, которая требует два параметра: желаемый месяц и год. Следует отметить, в средине функции, я оставил место для к базе данных. Если хотите, можете выводить необходимые события в сетку календаря. При написании этого скрипта, я использовал таблицы, вместо div блоков, так как они более практичны в случае, если один день будет пресыщен событиями.

    За основу брался англоязычный скрипт календаря, поэтому предоставлю две версии: календарь в английском и русском стиле. Выбирайте, какой вам по душе! Разница только в PHP коде. CSS стили остаются прежними, для обеих вариантов.

    PHP скрипт календаря в русском стиле"; /* Заглавия в таблице */ $headings = array("Понедельник","Вторник","Среда","Четверг","Пятница","Субота","Воскресенье"); $calendar.= ""; /* необходимые переменные дней и недель... */ $running_day = date("w",mktime(0,0,0,$month,1,$year)); $running_day = $running_day - 1; $days_in_month = date("t",mktime(0,0,0,$month,1,$year)); $days_in_this_week = 1; $day_counter = 0; $dates_array = array(); /* первая строка календаря */ $calendar.= " < $running_day; $x++): $calendar.= "

    © 2005-2017, HOCHU.UA

    ".implode("",$headings)."