2014-09-15 2 views
-2

Я хочу добавить число (X) каждую секунду, начиная с сегодняшнего дня до счетчика.Добавить x каждую секунду

Переменные:
Дата начала
Дата окончания
Количество добавить каждую секунду (X)

Если Х 0,4 счетчик будет выглядеть следующим образом:
15 сентября 2014 10: 00:01: 0,4
15 сентября 2014 года 10:00:02: 0,8
15 сентября 2014 10:00:03: 1.2

Это может продолжаться, например, один год.

Я нашел этот вопрос, но он начинается с нуля каждый раз, когда вы посещаете страницу: jQuery counter to count up to a target number

Вместо кода я ищу имеет время как ссылки.

Я попытался изменить код:

(function($) { 
    $.fn.countTo = function(options) { 
     // merge the default plugin settings with the custom options 
     options = $.extend({}, $.fn.countTo.defaults, options || {}); 

     // how many times to update the value, and how much to increment the value on each update 
     var loops = Math.ceil(options.speed/options.refreshInterval), 
      increment = (options.to - options.from)/loops; 

     return $(this).each(function() { 
      var _this = this, 
       loopCount = 0, 
       value = options.from, 
       interval = setInterval(updateTimer, options.refreshInterval); 

      function updateTimer() { 
       value += increment; 
       loopCount++; 
       $(_this).html(value.toFixed(options.decimals)); 

       if (typeof(options.onUpdate) == 'function') { 
        options.onUpdate.call(_this, value); 
       } 

       if (loopCount >= loops) { 
        clearInterval(interval); 
        value = options.to; 

        if (typeof(options.onComplete) == 'function') { 
         options.onComplete.call(_this, value); 
        } 
       } 
      } 
     }); 
    }; 

    $.fn.countTo.defaults = { 
     from: 0, // the number the element should start at 
     to: 100, // the number the element should end at 
     speed: 1000, // how long it should take to count between the target numbers 
     refreshInterval: 100, // how often the element should be updated 
     decimals: 0, // the number of decimal places to show 
     onUpdate: null, // callback method for every time the element is updated, 
     onComplete: null, // callback method for when the element finishes updating 
    }; 
})(jQuery); 

jQuery(function($) { 
     $('.timer').countTo({ 
      from: 10000, 
      to: 100000, 
      speed: 50000000, 
      refreshInterval: 50, 
      onComplete: function(value) { 
       console.debug(this); 
      } 
     }); 
    }); 

Мои данные:

from: 10000, to: 100000, speed: 50000000 

От даты переменная отсутствует в коде. Я не думаю, что это самая эффективная установка. Лучше всего подходит описание наверху.

+6

показать нам, что вы пытались –

+0

Так что же такое проблема? Что вы получаете против того, что вы ожидаете получить? Пожалуйста, предоставьте дополнительную информацию. – Shomz

+0

Текущий код запускает счетчик с «нуля» каждый раз, когда вы обновляете страницу, то, что я ищу, - это функция, которая нравится к дате. – Felix

ответ

0

Хорошо, в соответствии с комментариями, звучит так, как будто вам нужен счетчик с определенного момента времени до настоящего времени.

Это легко сделать с помощью функции Date().getTime(), которая дает вам время в миллисекундах.

Если вам нужно всего прилавке секунд с коэффициентом, вы можете сделать что-то простое, как это:

var start = new Date('15 september 2014 10:00:00').getTime()/1000 | 0; 
var x = 0.4; 

var el = document.getElementById('t'); 

setInterval(function(){ 
    var output = ((((new Date().getTime()/1000 - start) | 0) * x * 10) | 0)/10; 
    el.innerHTML = '<span>' + new Date() + '</span>' + output; 
}, 1000); 

Посмотри здесь: http://jsfiddle.net/bdu4na3t/1/

+0

Но это все еще начинается после обновления? – Felix

+0

Да, потому что 11 сентября всегда 11 сентября. Какой должен быть стартовый номер? И конечный номер? – Shomz

+0

Скажите, что это должно быть от 10 до 1000 – Felix

Смежные вопросы