— это jQuery плагин, выводящий время на экран. Плагин содержит в себе множество гибких настроек.
Посмотреть демо
Плагин содержит в себе 3 мода current
, interval
, toggler
.
Для работы плагина требуется подключение jQuery. Плагин тестировался на версии 1.7.2, но должен поддерживаться вплоть до 1.4.*.
$(selector).jqTime(mode, [options], [callback]);
$('#element1').jqTime('current');
Вставляет текущее время в элемент с id="element1"
$('#element2').jqTime('interval', {from: '10:00:01', to: '11:00:00'});
Будет показывать текущее время с 10:00:01 до 11 часов в элемент с id="element2"
$('#element3').jqTime('toggler', {from: '10:00:01', to: '11:00:00'});
Будет показывать заданный элемент с 10:00:01 до 11 часов
В плагине работает система подсчета времени, время обновляется раз в 5 минут.
В функциях выводящих время, используется форматировщик выводящегося времени по регулярному выражению.
Он ищет в выражении буквы H, M, S, h, m, s.
Если буква прописная, то время будет форматироваться (к числам добавится 0, если они меньше 10).
Например: h:M:S
— выведет 9:01:01, а H:M.S
— выведет 09:01.01
Все функции могут работать в часовом поясе пользователя зашедшего на сайт, или в заданом часовом поясе UTC
Можно указать третьим параметром callback, который будет вызываться каждую секунду. В него будет передано время в формате JSON:
$('element').jqTime('current', {}, function(JSONdata){ console.log(JSONdata); });
Все возможные поля JSON:
{ hours: 0, minutes: 0, seconds: 0, utc: 'real', // часовой пояс, с которым сейчас работает плагин formated: '12:00:00', // отформатированная строка, или содержимое. Это же содержимое будет показано в выбраном элемента midday: 'am', // или pm. будет показано, только если включен 12-часовой формат inInterval: true, // boolean для interval и toggler, для multi будет строка с id в формате *interval* }
Выводит текущее время, или время оставшееся до конца дня в заданный селектор.
true
, отсчитывает время в обратную сторону (до конца дня). По умолчанию false
."real"
— будет выводить текуще время на машине пользователя. По умолчанию "real"
.exp
маску D (HH:MM:SS D, будет 12:00:00 a.m.)null
, выводит время в соответствии с заданным регулярным выражением. По умолчанию HH:MM:SS d
. Подробнее описано в главе «Вспомогательные функции»$('#element').jqTime('current', { wrap: true, utc: 0, exp: 'hh:MM:ss' });
Показывает время в заданном селекторе в заданный промежуток времени, или время, оставшееся до заданого.
true
, отсчитывает время до timeTo
. По умолчанию false
."real"
— таймер будет работать со временем на машине пользователя. По умолчанию "real"
.exp
маску D (HH:MM:SS D, будет 12:00:00 a.m.)null
, выводит время в соответствии с заданным регулярным выражением. По умолчанию null
. Подробнее описано в главе «Вспомогательные функции»"0:0:0"
. Параметр обязателен, по умолчанию ничего не задано."0:0:0"
. Параметр обязателен, по умолчанию ничего не задано.null
, покажет изначальное содержимое. По умолчанию null
.$('#element2').jqTime('interval', {
utc: +4,
timeFrom: '0:0:0',
timeTo: '12:0:0',
alt: 'Вне промежутка',
exp: 'hh:MM:ss'
});
Показывает заданный селектор в заданный промежуток времени.
"real"
— будет считать относительно времени на машине пользователя. По умолчанию "real"
."0:0:0"
. Параметр обязателен, по умолчанию ничего не задано."0:0:0"
. Параметр обязателен, по умолчанию ничего не задано.null
, будет просто показывать выбранный селектор. По умолчанию null
. Если передать функцию — она выполнится, когда время войдет в промежуток.null
, будет просто скрывать выбранный селектор. По умолчанию null
. Если передать функцию — она выполнится, когда время выйдет из промежутка.$('#element2').jqTime('toggler', { utc: -2, timeFrom: '0:0:0', timeTo: '12:0:0' });
В плагине используются вспомогательные функции, которые тоже могут быть полезными. Они находятся в объекте $.jqTime.helper
$.jqTime.helper.formater(number)
$.jqTime.helper.sting_to_time(hh:mm:ss)
"0:0:0"
. Возвращает заданое время в секундах.$.jqTime.helper.updater(seconds, utc)
$.jqTime.helper.expToTime(expr, hours, minutes, seconds, midday)
В проекте используется тестирование с помощью qUnit. Пока весь проект не покрыт тестами, но тесты дописываются постоянно.
Разработка проекта ведется с методологией Continuous Integration, автоматизированное тестирование работает на Travis CI.
Для сборки проекта используется Grunt.js.