Как сделать таймер?

Подскажите удобный таймер-плагин (jquery /angularjs ...)
Нужно изначально ввести время "сейчас" и время окончания- и что б он считал посекундно и по окончании произошло событие "end".
Есть ли готовые варианты?
  • Вопрос задан
  • 579 просмотров
Пригласить эксперта
Ответы на вопрос 4
NewProject1
@NewProject1
http://newproject1.com
setTimeout ? ;-)

var now = +new Date();
console.log(now);

setTimeout(function() {
    var future = +new Date();
    console.log(future);
}, 5000); // Время в милисекундах, 1 сек = 1000 мсек


Время из timestamp в какой вам нужно формат, я думаю сами переведете :-)
Ответ написан
Комментировать
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Вот прямо плагин?)

function timer (delta, step) {
	var count = 0;

	(function t () {
		if (count < step) {
			console.log(count);
			count++;
			setTimeout(t, delta);
		} else {
			console.log(count, 'end');
		}
	})();
}

timer(1000, 5);
Ответ написан
Комментировать
AMar4enko
@AMar4enko
.factory('countdown', function($q, $interval) {
  return function(to) {
      var d = $q.defer();
      var elapsed = 0;
      var intervalId = $interval(function() {
          elapsed += 1;
          d.notify(elapsed);
          if(Date.now() >= to) {
            $interval.cancel(intervalId);
            d.resolve();    
          }    
      }, 1000); 
      return d.promise;
  };
});
Ответ написан
Комментировать
@Alastor
Если точность не важна - то можно использовать варианты приведённые выше
Ибо через несколько часов без перезагрузок страницы таймер будет отставать на время от одной секунды, до нескольких минут. Зависит от компьютера.

А если нужна точность, то обязательно сверять по current timestamp и корректировать setInterval.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы