Это небольшая функция jQuery, которую я написал, чтобы добавить выбранный класс к элементу на основе текущей даты и времени (используя метку даты). Идея состоит в том, чтобы установить текущий сеанс, который отображается в данный момент, как показано на скриншоте ниже.
Функция $ .dateTimeHighlightNow ()
/**
* $.dateTimeHighlightNow()
* Author: Sam Deering
* Adds/removes a selected class on elements based on the current date and time.
* usage: $('.program p').dateTimeHighlightNow();
*/
jQuery.fn.dateTimeHighlightNow = function()
{
return this.each(function()
{
var datetimestamp = Math.round(new Date().getTime() / 1000)
elem = $(this),
start = elem.attr('start'),
finish= elem.attr('finish');
log('datetimestamp = '+datetimestamp);
if (start < datetimestamp && finish > datetimestamp)
{
elem.addClass('selected');
log(elem);
}
else
{
elem.removeClass('selected');
}
});
};
Использование:
$('.program p').dateTimeHighlight();
Ваш HTML-код должен выглядеть примерно так:
Дальнейшее использование может быть для запуска события каждые 1 минуту (или около того) для автоматического обновления:
/* monitor for auto change of current active session based on date/time */
setInterval(function()
{
//run every minute
$('.program p').dateTimeHighlight();
}, 60000);
Еще дальше мысли
- PHP timestamp выполняется на стороне сервера (системные часы вашего сервера).
- Отметка времени JavaScript выполняется на стороне клиента (системные часы вашего компьютера).
- Дальнейшая проверка для преобразования настроек часового пояса клиентов на серверы для выделения текущего сеанса (это то, что я могу рассмотреть в ближайшем будущем, так что следите за обновлениями).