Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » jQuery » Отсчет времени на jQuery

Отсчет времени на jQuery


     06.10.2012    таймер, отсчет    Все вопросы » jQuery    5859

вопрос
Доброго времени суток!
Столкнулся с казалось бы не существующей проблемой.... нужен мне таймер на jQuery, в нете их полно... но все не то =)
На сайте нужно вывести отсчет времени до выхода новых сезонов сериалов... при добавлении категории (сезона) будет указываться дата в формате dd.mm.yy, мне необходим таймер в который можно будет подставить эту дату, и отсчитывать время от той даты к текущей дате... + таких таймеров должно быть несколько...

Ответил: Crush555


Я делал так:
создал доп.поле "timer", в нем указываю будущую дату релиза в формате "17 september, 2013".
в файле fullstory.tpl в нужном месте вставляю:
[xfgiven_timer]<div align=center id="CountdownClock" style="color: rgb(119, 0, 0);"><script type="text/javascript" language="javascript"> updateCountdownClock ("[xfvalue_timer]")</script></div>[/xfgiven_timer]

сам скрипт размещаю в HEAD в main.tpl так:
<script type="text/javascript" src="{THEME}/js/timer.js"></script>

вот сам скрипт:
<!--
// обратный отсчет для рос. премьер
function updateCountdownClock(endDate) {
  var time = new Date();
  var endtime = new Date(endDate);
  var timemils = time.getTime();
  var endtimemils = endtime.getTime();
  if (endtimemils < timemils) {
    document.getElementById('CountdownClock').innerHTML='';
    return;
  }
  
  var daysleft = Math.floor( ( endtimemils - timemils ) / 1000 / 60 / 60 / 24);
    var d = daysleft - Math.floor(daysleft/10)*10;
  var daysleftFinal;
  var text_day;

    //alert(daysleft);
    if (d==1 && daysleft!=11) text_day="день";
    else if (d>1 && d<5 && (daysleft<10 || daysleft>20)) text_day="дня";
    else if (d>=0) text_day="дней";
  
  if (daysleft > 0) daysleftFinal = daysleft + ' ' + text_day + '<br>+';  
    else daysleftFinal = '';
        
    var hours=23-time.getHours();
    var minutes=59-time.getMinutes();
    var seconds=59-time.getSeconds();

  document.getElementById('CountdownClock').innerHTML=
  "<table cellpadding=0 cellspacing=0 border=0 width=20% height=60 bgcolor=#AEC2CF><tr align=center style='color:#777'><b>До релиза:</b><td height=11></td></tr><tr><td style='color:#777' width=100% bgcolor=#ececec align=center>" +
  ( daysleftFinal ) +
  ((hours<10)?'0'+hours:hours)+':'+
  ((minutes<10)?'0'+minutes:minutes)+':'+
  ((seconds<10)?'0'+seconds:seconds) +
  "</td></tr></table>";
  
  window.setTimeout("updateCountdownClock('"+endDate+"')",1000);
}
-->

тыщу лет назад дернул его с кинопоиска, прикрутил к DLE и с тех пор пользуюсь.

9 комментариев

Crush555
Юзер

Crush555 - 24 октября 2012 21:05 -

что-то криво запостилось, а редактировать не дает :(

Crush555
Юзер

Crush555 - 24 октября 2012 21:07 -

***Комментарий удален***

ПафНутиЙ
Админ

ПафНутиЙ - 25 октября 2012 07:36 -

подправил ответ, но я бы использовал плагин для jquery

Каков вопрос - таков и ответ. Просто помните об этом.

Sander
PHP-developer

Sander - 24 октября 2012 23:25 -

var time = new Date();

У этого метода один большой минус. У каждого посетителя свои часовые пояса. И расхождение может быть в районе 4 часов и более...

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

nowheremany
Эксперт

nowheremany - 25 октября 2012 09:33 -

Еслои сравнивать с тем же временем, не пофигу ли?

Благодарность принимаю тут Связь

Олег
Юзер

Олег - 22 ноября 2013 11:38 -

Здравствуйте. Подскажите пожалуйста, как сделать чтобы данный скрипт брал инфу только из одной определенной категории?

kovel2
Юзер

kovel2 - 10 декабря 2013 12:34 -

Здравствуйте. А как сделать что бы отчет бил по времени то есть. (до начала осталось 11:55:00 только время без дней.)

vitnet
PHP-developer

vitnet - 10 декабря 2013 12:55 -

Вырезать дни =)

kovel2
Юзер

kovel2 - 3 февраля 2014 23:08 -

Можеш сделать. И в доп поле вводить (17:00) без дати

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх