Таймер обратного отсчета

  • Автор темы Автор темы Kennedy
  • Дата начала Дата начала

Kennedy

Путник
Пользователь
Сообщения
319
Розыгрыши
0
Репутация
89
Реакции
27
Баллы
0
Всем привет. Кто может помочь разобраться в таймере обратного отсчета для промо страницы, для SW13.
Нужно сделать дату: "11 Октября. Старт сервера 18:00 (GMT +5)
Вот скрипт самого таймера.
Код:
/*
 * jquery-countdown plugin - v0.2
 *
 * Copyright (c) 2009 Martin Conte Mac Donell <Reflejo@gmail.com>
 * Copyright (c) 2011 Peter Farmer <pfarmer@gmail.com>
 *
 * Dual licensed under the MIT and GPL licenses.
 * http://docs.jquery.com/License
 */

(function( $ ) {
  var init = function( userOptions ) {
  var options = {
  stepTime: 60,
  format: "dd:hh:mm:ss",
  startTime: "18:00:00:0",
  digitImages: 6,
  digitWidth: 53,
  digitHeight: 77,
  autoStart: false,
  timerEnd: function() {
  },
  image: "digits.png"
  };
  var digits = [], interval;

  // Draw digits in given container
  var createDigits = function(where) {
  var c = 0;
  var hCounter = 18;
  var mCounter = 00;
  var sCounter = 00;

  // Check the incoming startTime
  // console.log("options.startTime = " + options.startTime);

  if ((typeof options.startTime == 'object') && (options.startTime.constructor == Date)) {
  // console.log("Have been passed a date object? hopefully?");
  var now = new Date(timerDataServer*1000);  
  if (options.startTime.getTime() < now.getTime()) {
  options.startTime.setFullYear(options.startTime.getFullYear() + 1);
  // console.log("options.startTime is now = " + options.startTime);
  }
  // console.log("options.startTime.getTime() = " + options.startTime.getTime());
  // console.log("now.getTime() = " + now.getTime());
  var datediff = Math.ceil((options.startTime.getTime() - now.getTime()) / 1000);
  // console.log("datediff = " + datediff);
  var days = Math.floor(datediff / 86400);
  // console.log("days = " + days);
  var hours = Math.floor((datediff % 86400) / 3600);
  var minutes = Math.floor(((datediff % 86400) % 3600) / 60);
  var seconds = ((datediff % 86400) % 3600) % 60;
  options.startTime = days + ":" + hours + ":" + minutes + ":" + seconds;
  }

  _startTime = options.startTime.split("");
  // Count the number of ":" in the startTime.
  cCounter = 0;
  for (var i = 0; i < _startTime.length; i++) {
  if (isNaN(parseInt(_startTime[i]))) {
  // console.log("cCounter++ (" + _startTime[i] + ")");
  cCounter = cCounter + 1;
  }
  }

  // Zero pad each section of the startTime if required.
  // console.log("options.startTime = " + options.startTime)
  var chunks = options.startTime.split(":");
  // console.log("chunks.length = " + chunks.length);
  var newstartTime = "";
  for (var i = 0; i < chunks.length; i++) {
  var max = 59;
  if (chunks.length == 3) {
  if (i == 0) {
  max = 23;
  }
  }
  if (chunks.length == 4) {
  if (i == 0) {
  max = 9999;
  }
  if (i == 1) {
  max = 23;
  }
  }

  if (chunks[i] > max) {
  chunks[i] = max;
  }
  if (chunks[i].length < 2) {
  chunks[i] = "0" + chunks[i];
  }
  }

  options.startTime = chunks.join(":");
  // console.log("options.startTime = " + options.startTime)

  // Calculate what the format should be:
  switch (cCounter) {
  case 3:
  // console.log("options.startTime.split(':', 1).length is " + options.startTime.split(":")[0].length);
  if (options.startTime.split(":")[0].length == 3) {
  options.format = "ddd:hh:mm:ss";
  } else {
  options.format = "dd:hh:mm:ss";
  }
  break;
  case 2:
  options.format = "hh:mm:ss";
  break;
  case 1:
  options.format = "mm:ss";
  break;
  case 0:
  options.format = "ss";
  break;
  }

  // console.log("cCounter == " + cCounter);
  // console.log("options.format == " + options.format);

  // Iterate each startTime digit, if it is not a digit
  // we'll assume that it's a separator
  options.startTime = options.startTime.split("");
  options.format = options.format.split("");
  // console.log("options.startTime = " + options.startTime);
  // console.log("options.startTime.length = " + options.startTime.length);
  for (var i = 0; i < options.startTime.length; i++) {
  // console.log("options.startTime[" + i + "] = " + options.startTime[i]);
  if (parseInt(options.startTime[i]) >= 0) {
  // console.log("parseInt >= 0");
  var elem = jQuery('<div id="cnt_' + i + '" class="cntDigit" />').css({
  height: options.digitHeight * options.digitImages * 10,
  "float": 'left', background: 'url(\'' + options.image + '\')',
  width: options.digitWidth});
  // console.log("elem = " + elem);
  digits.push(elem);
  margin(c, -((parseInt(options.startTime[i]) * options.digitHeight *
  options.digitImages)));
  digits[c].__max = 9;
  // Add max digits, for example, first digit of minutes (mm) has
  // a max of 5. Conditional max is used when the left digit has reach
  // the max. For example second "hours" digit has a conditional max of 4
  // console.log("options.format[" + i + "] = " + options.format[i]);
  switch (options.format[i]) {
  case 'h':
  if (hCounter < 1) {
  // console.log("digits[c] = " + digits[c]);
  digits[c].__max = 2;
  // console.log("settings digits[" + c + "].__max = 2");
  hCounter = 1;
  } else {
  digits[c].__condmax = 3;
  // console.log("settings digits[" + c + "].__condmax = 3");
  }
  break;
  case 'd':
  digits[c].__max = 9;
  break;
  case 'm':
  if (mCounter < 1) {
  digits[c].__max = 5;
  mCounter = 1;
  } else {
  digits[c].__condmax = 9;
  }
  break;
  case 's':
  if (sCounter < 1) {
  digits[c].__max = 5;
  sCounter = 1;
  } else {
  digits[c].__condmax = 9;
  }
  break;
  }
  ++c;
  } else {
  elem = jQuery('<div class="cntSeparator"/>').css({"float": 'left'}).text(options.startTime[i]);
  }
  where.append('<div>');
  where.append(elem);
  where.append('</div>');
  }
  };

  // Set or get element margin
  var margin = function(elem, val) {
  if (val !== undefined)
  return digits[elem].css({'marginTop': val + 'px'});

  return parseInt(digits[elem].css('marginTop').replace('px', ''));
  };

  // Makes the movement. This is done by "digitImages" steps.
  var moveStep = function(elem) {
  // console.log("digits[elem] = " + digits[elem]);
  digits[elem]._digitInitial = -(digits[elem].__max * options.digitHeight * options.digitImages);
  return function _move() {
  mtop = margin(elem) + options.digitHeight;
  if (mtop == options.digitHeight) {
  margin(elem, digits[elem]._digitInitial);
  if (elem > 0) moveStep(elem - 1)();
  else {
  clearInterval(interval);
  for (var i = 0; i < digits.length; i++) margin(i, 0);
  options.timerEnd();
  return;
  }
  if ((elem > 0) && (digits[elem].__condmax !== undefined) &&
  (digits[elem - 1]._digitInitial == margin(elem - 1)))
  margin(elem, -(digits[elem].__condmax * options.digitHeight * options.digitImages));
  return;
  }

  margin(elem, mtop);
  if (margin(elem) / options.digitHeight % options.digitImages != 0)
  setTimeout(_move, options.stepTime);

  if (mtop == 0) digits[elem].__isma = true;
  }
  };

  var start = function() {
  if (interval == undefined)
  interval = setInterval(moveStep(digits.length - 1), 1000);
  }

  var pause = function() {
  if (interval) {
  window.clearInterval(interval);
  interval = undefined;
  }
  }

  this.data("countdown", {
  "start": start,
  "pause": pause
  });

  $.extend(options, userOptions);
  this.css({height: options.digitHeight, overflow: 'hidden'});
  createDigits(this);
  if (options.autoStart) {
  start();
  }
  };

  $.fn.countdown = function( method ) {
  var methods = this.data("countdown");
  if ( methods && methods[method] ) {
  return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
  } else if ( typeof method === 'object' || ! method ) {
  return init.apply( this, arguments );
  } else {
  $.error( 'Method ' +  method + ' does not exist on jQuery.countdown' );
  }   
  };
})( jQuery );
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Код:
<script src="http://megatimer.ru/s/febfbc7c064926b1925ded4aac841f9b.js"></script>
 
Возможно глупый вопрос, но куда его вставлять?
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Так я попробовал вставить, ничего не выходит.
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
- тут сайт таймеров. Напишите свой контакт помогу вам
 
Назад
Сверху Снизу