Сегодня мы представляем вам подборку плагинов, которые позволяет вам с легкостью создавать календари с возможностью выбора даты, большая часть из которых разработаны на jQuery и jQuery UI (пользовательский интерфейс).
Почти все эти календари представляют собой полноценную платформу с хорошим функционалом, но некоторые придется улучшать и дорабатывать, но иногда это даже в плюс, так как в большинстве случаев вам, так или иначе, надо подгонять внешний вид под дизайн сайта.
Эта статья о том, как можно создать календарь в стиле приложения для iPhone.
Свойства:
* Создание любого количества месяцев на отдельный календарь
* Возможность отображения выходных и праздничных дней
* Начальная и конечная даты
* Изменение внешнего вида посредством CSS
* Возможность устанавливать сразу несколько календарей на странице
* Оптимизация для лучшей производительности
Можно также, опционально, ввести дату и вам отобразится нужный месяц. Год можно отображать как в формате двух чисел, так и четырех, а месяц можно отобразить цифрами или названием. Вы также можете отобразить любую дату или день посредством javascript.
Этот виджет отлично подойдет для комбинирования технологий со стороны сервера для дальнейшей разработки профессионального приложения.
Свойства:
* Возможность отображения вместе с другими элементами на странице
* Несколько календарей в одном компоненте
* Возможность выделения определенных дат
* Возможность изменения внешнего вида посредством CSS
* Возможность локализировать названия дней и месяцев
* Возможность задать собственный день начала недели
* Возможность интеграции в окно браузера
Несколько календарей, работающих в пределах одного приложения Plans можно использовать на разных веб-сайтах. В приложении задействована очень гибкая модель рекуррентных событий.
Приложение поддерживает несколько языков. Вы может вручную выставить день начала недели. Даты можно отображать в формате аббревиатур (mm/dd/yy, dd/mm/yy и так далее). В приложении можно задействовать данные из отдельных файлов или базы данных.
По стандарту, календарь отображается в виде небольшого наложения посредством onfocus и автоматически закрывается с эффектом onblur, или после того, как дата уже выбрана. Вы можете без труда внедрить календарь в свою веб-страницу посредством div или span.
Вы можете управлять календарем с помощью горячих клавиш:
* page up/down – предыдущий/следующий месяц
* ctrl+page up/down – – предыдущий/следующий год
* ctrl+home – текущий месяц или открыть календарь, если он закрыт
* ctrl+left/right – – предыдущий/следующий день
* ctrl+up/down – – предыдущая/следующая неделя
* enter – подтвердить выбранную дату
* ctrl+end – закрыть без сохранения даты
* escape – просто закрыть календарь
Плагин предоставляет возможность выбора и перетаскивания событий по датам.
* работает с одним или более элементом ввода текста input type="text"
* возможность подсветки определенных дат
* автоматически закрывается после выбора даты (а также при нажатии кнопок сегодняшней даты или закрытия)
* возможность быстрых переходов посредством поля "select"
* автоматически скрывает кнопки, если больше некуда перелистывать
А также многое другое…
Свойства:
* возможность добавления языков
* возможность изменения текущей даты
* возможность прокрутки колесиком мыши
* наличие кнопок
Сен 14 2014
Существуют ситуации когда нельзя воспользоваться компонентом созданном на JavaScript. Как правило, это те случаи когда требуется возможность не автоматизировать выбор даты в HTML форме, а возможность привязки неких произошедших или планируемых событий к датам в будущем. Это может быть количество новостей на определенную дату, количество заказанных товаров или совершенных покупок в интернет-магазине и т.д. Т.е. в таких случаях становится очевидной необходимость в наличии связи календаря с базой данных, для получения тех или иных сведений за определенную дату. Конечно, можно было бы создать календарь на JavaScript и для получения данных о наличии тех или иных событий использовать Ajax, но как показывает практика такое решение не является оптимальным. Поэтому данный компонент календаря будет разработан на PHP.
Настройки по стилям для календаря содержатся в файле calendar.css . А PHP скрипт находится в файле calendar.class .
Для работы с календарем, необходимо добавить в нужный вам модуль, следующий код:
// Подключаем модуль require_once (dirname (__FILE__) . "/calendar.class.php"); // Массив c датами событий в формате Unix $Events = array(1409518800, 1409778000,1410210000,1410901200,1411592400); // Получаем дату, если есть $date = (isset($_REQUEST["date"]))? $_REQUEST["date"] : "" ; // Создаем объект календаря $calendar = new Calendar($date, $Events); // Выводим календарь echo $calendar->ShowCalendar();
Вы можете модифицировать исходный код данного календаря, исходя из ваших потребностей. Скачать компонент календаря можно .
В преддверии нового года возникла весьма тривиальная задача — сделать сайт-календарь, где для каждого месяца необходимо было вывести свой календарь на месяц. Первым этапом решения задачи — стал поиск готовых решений. После перебора десятка приведенных в интернете решений выбор был сделан. Какие-то версии и вовсе оказались нерабочими, какие-то слишком громоздкими — их пришлось бы изрядно «попилить», чтобы получить требуемый результат. Итак, рассмотрим как написать простой календарь на php.
Основа скрипта была найдена на просторах интернета, ошибки были исправлены, кое-что было доделано, в частности добавлена функциональность выделения выходных дней отдельным css-классом.
Реализация календаря на месяц на чистом PHP без использования mySQL, jQuery и т.д. приведена ниже:
function draw_calendar($month, $year, $action = "none") { $calendar = "
";
$calendar.= " ".$headings[$head_day]." ";
$calendar.= " | ";
}
$calendar.= "|
---|---|
"; $days_in_this_week++; } // дошли до чисел, будем их писать в первую строку for($list_day = 1; $list_day <= $days_in_month; $list_day++) { $calendar.= " | ";
// пишем номер в ячейку
$calendar.= " ".$list_day." ";
$calendar.= " | ";
// дошли до последнего дня недели
if ($running_day == 6) {
// закрываем строку
$calendar.= "
"; } } $calendar.= " |
На вход функция draw_calendar получает порядковый номер месяца и год. Результатом исполнения функции является html-код календаря на заданный месяц. Использовать вышеприведенную функцию несложно, и сможет даже новичок в веб-разработке. Пример ниже выведет календарь на январь 2016 год.
Вывод подписи к календарю, включающей в себя название месяца и год, намеренно не был включен в функцию, чтобы ее можно было свободно изменять, а возможно и вовсе убрать.
Из приведнной выше функции можно легко получить php-скрипт календаря на год, причем на любой. Для этого достаточно в цикле перебрать все месяцы и для каждого из них вызвать функцию вывода календаря на месяц.
Однако при этом потребуется завести массив со списком названий месяцев на русском языке, поскольку получить названия месяцев из php можно лишь на английском.
Код в таком случае будет следующим:
$months = Array(0 => "Январь", 1 => "Февраль", 2 => "Март", 3 => "Апрель", 4 => "Май", 5 => "Июнь", 6 => "Июль", 7 => "Август", 8 => "Сентябрь", 9 => "Октябрь", 10 => "Ноябрь", 11 => "Декабрь"); for ($month = 1; $month <= 12; $month++) { ?>
Примеры приведенные в данном посте вы можете скачать с гитхаба .
The Zap Cal Library is an open source PHP library for reading and writing iCalendar files. The library has been in development for over 10 years supporting the Zap Calendar program, an open source application for the Joomla CMS, and more recently the iCalendar validator project at сайт. It is now available as a standalone library for PHP developers.
The Zap Calendar iCalendar Library is a PHP library for supporting the iCalendar (RFC 5545) standard. Several examples of reading and writing iCalendar files are included in the library
This PHP library is for reading and writing iCalendar formatted feeds and files. Features of the library include:
All iCalendar data is stored in a PHP object tree. This allows any property to be added to the iCalendar feed without requiring specialized library function calls. With power comes responsibility. Missing or invalid properties can cause the resulting iCalendar file to be invalid..
Here is an example of a PHP program to create a single event iCalendar file:
$title = "Simple Event"; // date/time is in SQL datetime format $event_start = "2020-01-01 12:00:00"; $event_end = "2020-01-01 13:00:00"; // create the ical object $icalobj = new ZCiCal(); // create the event within the ical object $eventobj = new ZCiCalNode("VEVENT", $icalobj->curnode); // add title $eventobj->addNode(new ZCiCalDataNode("SUMMARY:" . $title)); // add start date $eventobj->addNode(new ZCiCalDataNode("DTSTART:" . ZCiCal::fromSqlDateTime($event_start))); // add end date $eventobj->addNode(new ZCiCalDataNode("DTEND:" . ZCiCal::fromSqlDateTime($event_end))); // UID is a required item in VEVENT, create unique string for this event // Adding your domain to the end is a good way of creating uniqueness $uid = date("Y-m-d-H-i-s") . "@demo.. $uid)); // DTSTAMP is a required item in VEVENT $eventobj->addNode(new ZCiCalDataNode("DTSTAMP:" . ZCiCal::fromSqlDateTime())); // Add description $eventobj->addNode(new ZCiCalDataNode("Description:" . ZCiCal::formatContent("This is a simple event, using the Zap Calendar PHP library. " .."))); // write iCalendar feed to stdout echo $icalobj->export();