Каким образом можно определить количество дней в месяце? На javascript это сделать очень просто.
Дело в том, что объект Date в javascript очень гибок. Если создать дату с числом, которого нет в данном месяце (например 33 - ну его уж точно нигде нету ))), то месяц (или год) объекта увеличится.
Например, попробуем создать дату 33 в текущем месяце - июне (не забываем также, что месяцы в javascript нумеруются с нуля):
var june = new Date(2009, 5, 33);
В итоге результирующей датой будет 3 июля 2009 г.
Используя данную гибкость языка, можно одной строчкой определить количество дней в месяце:
var dayCount = 32 - new Date(year, month, 32).getDate();
Или более красивый вариант:
var dayCount = new Date(year, month + 1, 0).getDate();
В одном из моих проектов мне понадобился простой javascript календарь. Но из существующих jQuery плагинов, только один “почти” соответствовал мои требованиям. Решил написать свой плагин - проба пера calendarLite plugin.
Особенности calendarLite:
календарь предназначен для постоянного отображения на странице (не так как разные date picker)
навигация по месяцам при помощи кнопок “Вперед” и “Назад”
гибкая настройка (возможные опции смотрите ниже)
Использование
Для того, чтобы начать пользоваться плагином, подключаем на странице jQuery и код самого плагина.
Установка формата ссылки
Можно задавать формат ссылки (для anchor), например для такого рода ссылок: http://snowcore.net/events/29-05-2009
Это можно сделать при помощи linkFormat опции
Задание собственной функции-обработчика (callback)
Для клика на ячейке можно задавать свои обработчики.
Callback функция принимает одно значение - выдранная дата. onSelect опция позволяет сделать это
Дополнительная опция dateFormat дает возможность установить формат даты, которая будет передаваться callback функции.
Значение по умолчанию для dateFormat: ‘{%dd}.{%mm}.{%yyyy}’
Разработчикам, которые работают с немецкими заказчиками это будет полезным. Очень часто под рукой не хватает данных символов - умляутов (для разнообразных проверок, например, регулярные выражения).
Таблица umlauts и спец.символов
Символ
HTML entity
ä
ä
ö
ö
ü
ü
Ä
Ä
Ö
Ö
Ü
Ü
ß
ß
è
è
é
é
û
û
Или все символы строкой: äöüÄÖÜßèéû
Теперь нам не страшны никакие немецкие регулярные выражения
Zend Framework предоставляет ряд помощников (Helpers), которые используются во view скриптах. К ним относятся, например: хелперы для создания разных HTML элементов, для построения ссылок, для экранирования вывода (escape) и другое. Но иногда возникает необходимость в создании собственного (custom) view helper. Рассмотрим рекомендации по этому поводу.
Helper представляет собой класс, который должен соблюдать некоторые требования:
Имя класса должно заканчиваться именем хелпера
Helper должен иметь public метод, имя которого совпадает с именем хелпера
Метод не должен использовать echo или print функции - необходимо возвращать значение
Необязательная рекомендация: разработчики Zend Framework советуют наследоваьб свой view helper класс от Zend_View_Helper_Abstract или имплементировать интерфейс Zend_View_Helper_Interface (в следующих релизах ZF планируется упростить набор правил для создания custom view helper, которые приведены выше)
Что ж, попробуем написать свой помощник вида.
В Smarty есть модификатор, который отрезает часть текста - truncate. Его можно использовать, например при выводе анонса новостей. Создадим и мы helper, который реализует данный функционал.
Создаем класс, который находится по такому пути: library/Custom/View/Helper/Truncate.php (используется классическая структура директорий Zend Framework)