Создание функции обратного отсчета в jQuery - PullRequest
0 голосов
/ 08 марта 2012


Я новичок и мне нужна твоя помощь.У меня проблема с поиском дней, часов, минут и секунд.Я не знаю, что обновлять минуты после секунд достигнет 60 и то же самое с часами и днями.
Я пытаюсь отсчитывать до заданной даты в формате Дней / Часов / Минут / Секунд.
Здесьссылка того, что я сделал до сих пор.
Спасибо заранее!:)

Ответы [ 3 ]

3 голосов
/ 08 марта 2012
var seconds = 1355998990 - new Date().getTime(), // whatever
minutes = Math.floor(seconds/60),
hours = Math.floor(minutes/60),
days = Math.floor(hours/24);

seconds %= 60;
minutes %= 60;
hours %= 24;

console.log("d: " + days + " h: " + hours + " m: " + minutes + " s: " + seconds);

Будет ли это делать?

Также обязательно проверьте это ; может быть, вы можете получить вдохновение там.

2 голосов
/ 08 марта 2012

Почему бы вам не использовать один из множества плагинов, доступных для этой цели, рассмотрите следующие ссылки:

http://keith -wood.name / countdown.html

В этом списке много плагинов для той же цели, используйте любой из них и улыбнитесь :) http://www.tripwiremagazine.com/2012/01/jquery-countdown-scripts.html

1 голос
/ 08 марта 2012

Я изменил вашу функцию count_execution и добавил несколько комментариев.Он должен делать то, что вы просите.

function count_execution() {
  // target date of event
  var eventDate   = new Date(settings.date);
  // now
  var currentDate = new Date();
  // get date diff *in milliseconds*
  var diff   = Math.abs(currentDate - eventDate);

  // compute days left
  // 24h * 60m * 60s * 1000 = 86400000
  var days = Math.floor(diff / 86400000);
  diff = diff % 86400000;

  // compute hours left
  // 60m * 60s * 1000 = 3600000
  var hours = Math.floor(diff / 3600000);
  diff = diff % 3600000;

  // the same for minutes
  var minutes = Math.floor(diff / 60000);
  diff = diff % 60000;

 // finally, seconds
 var seconds = Math.floor(diff / 1000);

 $this.find('#days').text(days);
 $this.find('#hours').text(hours);
 $this.find('#mins').text(minutes);
 $this.find('#secs').text(seconds);
}

Надеюсь, это поможет.

...