Javascript.RU

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

JavaScrip отсчета времени, работает не корректно...
Сдраствуйте, у меня есть скрипт но он не верно отображает месяц, часы, минуты и секунды соответственно.
Кто разбирается с легкость, посмотрите пожалуйста код и скажите что не правильно?
<script type="text/javascript">
var Countdown =
{
  timer: null,
  init: function(id, until)
  {
    Countdown.node  = document.getElementById(id);
    Countdown.update(until);
    Countdown.timer = setInterval(function()
    {
      Countdown.update(until);
    }, 1000);
  },

  stop: function()
  {
    clearInterval(Countdown.timer);
    return true;
  },

  update: function(until)
  {

    var s = Countdown.process(new Date(), until);
    Countdown.node.innerHTML = s || Countdown.stop() && 'Вах! Что то пошло не так, но я работаю.';
  },

  difference: function(before, after)
  {
    if (after < before) return false;
    var
    days   = after.getDate()  - before.getDate(),
    months = after.getMonth() - before.getMonth(),
    years  = after.getYear()  - before.getYear(),
    hms    = (after / 1000 - before / 1000) % 86400,

    seconds = Math.floor(hms % 60),
    minutes = Math.floor(hms/60) % 60,
    hours   = Math.floor(hms/3600) % 60,

    date = new Date();

    if (days < 0)
    {
      date.setFullYear(before.getYear(), before.getMonth(), 32);
      days += 32 - date.getDate();
      months--;
    }

    if (months < 0)
    {
      months += 12;
      years--;
    }

    return {
      years:   years,
      months:  months,
      days:    days,

      hours:   hours,
      minutes: minutes,
      seconds: seconds
    };
  },

  process: function(before, after)
  {
    var diff = null, a = [], i = '';
    if(!(diff = Countdown.difference(before, after))) return false;

    for(i in diff)
    {
      if(!diff[i]) continue;
      a.push('<span class="num">'
              + diff[i] +
             '</span><span class="unit">'
              + Countdown.lang[i][Countdown.lang.choose( diff[i] )] +
             '</span>');
    }

    return a.join(' ');
  },

  lang:
  {
    years:   ['год', 'года', 'лет'],
    months:  ['месяц', 'месяца', 'месяцев'],
    days:    ['день', 'дня', 'дней'],
    hours:   ['час', 'часа', 'часов'],
    minutes: ['минута', 'минуты', 'минут'],
    seconds: ['секунда', 'секунды', 'секунд'],
    choose:  function(n)
    {
      var m = n % 100, i = 2;
      if(m < 5 || 20 < m)
      {
        if((m %= 10) === 1)
        {
          i = 0;
        }
        else if(1 < m && m < 5)
        {
          i = 1;
        }
      }
      return i;
    }
  }
};

window.onload = function()
{
  Countdown.init('countbox', new Date(2013, 03, 30, 17, 00, 00));
};</script>
Ответить с цитированием
  #2 (permalink)  
Старый 29.03.2013, 21:39
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

что значит "не корректно"?
__________________
.ня
Ответить с цитированием
  #3 (permalink)  
Старый 31.03.2013, 12:00
Новичок на форуме
Отправить личное сообщение для asp2chief Посмотреть профиль Найти все сообщения от asp2chief
 
Регистрация: 29.03.2013
Сообщений: 2

Ну вот например я устанавливаю:
Countdown.init('countbox', new Date(2013, 03, 31, 17, 00, 00));

Оно не правильно подсчитывает время... в отсчете видно что время уже не правильное, начиная с месяца..
Ответить с цитированием
  #4 (permalink)  
Старый 31.03.2013, 17:47
Аватар для zOdmin
Аспирант
Отправить личное сообщение для zOdmin Посмотреть профиль Найти все сообщения от zOdmin
 
Регистрация: 05.03.2012
Сообщений: 62

Эта работа, которая отнимает прилично времени, называется отладка.
Ей проще всего заниматься тому программисту, который написал код.
Ответить с цитированием
  #5 (permalink)  
Старый 31.03.2013, 19:37
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

как именно "не правильно"? что показывает?
__________________
.ня
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не корректно работает slice Dotod Общие вопросы Javascript 20 30.01.2010 23:31
свойство innerHTML в Opera и Firefox работает не корректно? figaro Javascript под браузер 1 05.11.2009 00:57
Opera не корректно работает со скриптом Anat.nem Opera, Safari и др. 4 30.10.2009 13:39
Скрипт В IE отрабатывает корректно, но не работает в FF 3.5 Sonkkorh AJAX и COMET 11 27.07.2009 19:03
В объекте не корректно работает инкремента (++ или +=1)) Bratok Общие вопросы Javascript 2 28.04.2009 01:28