Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.03.2013, 21:58
Новичок на форуме
Отправить личное сообщение для UndeadLie Посмотреть профиль Найти все сообщения от UndeadLie
 
Регистрация: 17.03.2013
Сообщений: 2

Проблема с обратным таймером
Добрый час, форумчане. Меня интересует следующий вопрос, а точнее просьба в помощи.
Просьба в том, чтобы объяснить мне каким образом настраивать дату в этом скрипте. Причина моего обращения сюда в том, что скрипт неадекватно ведёт обратный отсчёт. Я указываю дату, к примеру 03/17/2013 и время 9:20 по PM. Но скрипт показывает, что до события необходимо ждать все 128 дней:40 часов:8 минут: 72 секунды.
Причём время указывалось на 10 минут, т.е. я задавал параметр в 9:10 PM. Однако из наблюдений выяснилось, что минуты и секунды идут правильно, вроде как.
Выкладываю код скрипта. Уважаемые гуру и профи - помогите. Не проходите мимо. Время я учитываю по МСК.
<style>

#clock1{
   font-size: 25px;
   font-family:"Arial Black", Gadget, sans-serif;
   text-align:center;}


</style>
   <div id="clock1">[clock1]</div>
   

<script language="JavaScript">

  StartCountDown("clock1","03/17/2013 10:00 PM -0400")
  
 
  /*
     Author:      Robert Hashemian ([url]http://www.hashemian.com/[/url])
     Modified by:   Munsifali Rashid ([url]http://www.munit.co.uk/[/url])
     Modified by:   Tilesh Khatri
  */
 
  function StartCountDown(myDiv,myTargetDate)
  {
    var dthen   = new Date(myTargetDate);
    var dnow   = new Date();
    ddiff      = new Date(dthen-dnow);
    gsecs      = Math.floor(ddiff.valueOf()/1000);
    CountBack(myDiv,gsecs);
  }
 
  function Calcage(secs, num1, num2)
  {
    s = ((Math.floor(secs/num1))%num2).toString();
    if (s.length < 2)
    {   
      s = "0" + s;
    }
    return (s);
  }
 
  function CountBack(myDiv, secs)
  {
    var DisplayStr;
    var DisplayFormat = "%%D%% :  %%H%% : %%M%% : %%S%%";
    DisplayStr = DisplayFormat.replace(/%%D%%/g,   Calcage(secs,86400,100000));
    DisplayStr = DisplayStr.replace(/%%H%%/g,      Calcage(secs,3600,24));
    DisplayStr = DisplayStr.replace(/%%M%%/g,      Calcage(secs,60,60));
    DisplayStr = DisplayStr.replace(/%%S%%/g,      Calcage(secs,1,60));
    if(secs > 0)
    {   
      document.getElementById(myDiv).innerHTML = DisplayStr;
      setTimeout("CountBack('" + myDiv + "'," + (secs-1) + ");", 990);
    }
    else
    {
      document.getElementById(myDiv).innerHTML = "Акция завершена";
    }
  }

</script>

Буду любезен, если вы объясните мне как настраивать дату и время или поможете со скриптом.
Ответить с цитированием
  #2 (permalink)  
Старый 17.03.2013, 22:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

UndeadLie,
странные строки 28 29
тайм зону можно неуказывать ...
<!DOCTYPE HTML>

<html>

<head>
<meta charset="utf-8">
  <title>Untitled</title>
</head>

<body>
<style>

#clock1{
   font-size: 25px;
   font-family:"Arial Black", Gadget, sans-serif;
   text-align:center;}


</style>
   <div id="clock1">[clock1]</div>


<script language="JavaScript">

  StartCountDown("clock1","03/17/2013 11:00 PM")


  /*
     Author:      Robert Hashemian ([url]http://www.hashemian.com/[/url])
     Modified by:   Munsifali Rashid ([url]http://www.munit.co.uk/[/url])
     Modified by:   Tilesh Khatri
  */

  function StartCountDown(myDiv,myTargetDate)
  {
    var dthen   = new Date(myTargetDate);
    var dnow   = new Date();
    ddiff      = dthen.getTime()-dnow.getTime();
    gsecs      = Math.floor(ddiff/1000);
    CountBack(myDiv,gsecs);
  }

  function Calcage(secs, num1, num2)
  {
    s = ((Math.floor(secs/num1))%num2).toString();
    if (s.length < 2)
    {
      s = "0" + s;
    }
    return (s);
  }

  function CountBack(myDiv, secs)
  {
    var DisplayStr;
    var DisplayFormat = "%%D%% :  %%H%% : %%M%% : %%S%%";
    DisplayStr = DisplayFormat.replace(/%%D%%/g,   Calcage(secs,86400,100000));
    DisplayStr = DisplayStr.replace(/%%H%%/g,      Calcage(secs,3600,24));
    DisplayStr = DisplayStr.replace(/%%M%%/g,      Calcage(secs,60,60));
    DisplayStr = DisplayStr.replace(/%%S%%/g,      Calcage(secs,1,60));
    if(secs > 0)
    {
      document.getElementById(myDiv).innerHTML = DisplayStr;
      setTimeout("CountBack('" + myDiv + "'," + (secs-1) + ");", 990);
    }
    else
    {
      document.getElementById(myDiv).innerHTML = "Акция завершена";
    }
  }

</script>

</body>

</html>
Ответить с цитированием
  #3 (permalink)  
Старый 18.03.2013, 10:21
Новичок на форуме
Отправить личное сообщение для UndeadLie Посмотреть профиль Найти все сообщения от UndeadLie
 
Регистрация: 17.03.2013
Сообщений: 2

рони,
спасибо огромное!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с обработкой ескольких .hover() anocean jQuery 3 15.06.2012 22:43
Проблема с дизайном после отправки xmlhttprequest, Проблема с дизайном после отправки cyberx AJAX и COMET 3 01.05.2010 17:07
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47