Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как поправить скрипт часов?

Как поправить скрипт часов?


     14.05.2018    Общие вопросы, Общие вопросы по вёрстке, jQuery    101

вопрос
Здравствуйте! Подскажите пожалуйста как поправить код часов.
Дело в том что он обращается к сервису времени на сайте и если он не меняться то время замирает и не идет вперед после перезагрузки страницы.
Кто подскажет как убрать обращение к сервису на сайте и просто чтобы обращалось к команде нужного времени как в обычных часах.
Очень прошу помочь.
На скрине пометил обращение к времени.
Как поправить скрипт часов?



			var t = 1448912652;

			if(t>0){
			var left = parseInt(1449507600 - t);
			setInterval(function() {
			  var foo = new Date;
			  left = left - 1;
			  //console.log(t, typeof(l));
			  if (left > 0){
			  minutes = left / 60 | 0,
			  hours = minutes / 60 | 0,
			  days = hours / 24 | 0,
			  hours = hours % 24;
			  if (hours < 10){hours = "0"+hours};
			seconds = left%60;
			  if (seconds < 10){seconds = "0"+seconds};
			minutes %= 60;
			  if (minutes < 10){minutes = "0"+minutes};
			  dd = " дней ";
			  tid = "";
			  if (days == 1){dd = " день "};
			  if (days < 5 && days > 1){dd = " дня "};
			  if (days > 0){tid = days + dd};
			  document.getElementById('nextserial').style.display="block";
			  if(days>0){
			  document.getElementById('nextserial').innerHTML = "До выхода следующей серии осталось:<span>"+ days + " "+ dd + " и " + hours +":"+ minutes +":"+ seconds+"</span>";
			  } else document.getElementById('nextserial').innerHTML = "До выхода следующей серии осталось:<span>"+ days + ":" + hours +":"+ minutes +":"+ seconds+"</span>"; 
			  }
		  }, 1000);
			} 			


Ответа пока нет


13 комментариев

СеммиДжо
Юзер

СеммиДжо - 16 мая 2018 14:04 -

Что не кто никто не поможет?

СеммиДжо
Юзер

СеммиДжо - 18 мая 2018 12:24 -

Помогите поправить скрипт. Почему всем помогаете а меня игнорите?

BRAGA
Юзер

BRAGA - 18 мая 2018 17:12 -

Не понятно в чем вопрос.
Как понимать эти фразы:
он обращается к сервису времени на сайте и если он не меняться то время замирает

чтобы обращалось к команде нужного времени как в обычных часах

Объясните нормально, что нужно в конечном итоге получить.

СеммиДжо
Юзер

СеммиДжо - 19 мая 2018 13:40 -

Цитата: BRAGA
Объясните нормально, что нужно в конечном итоге получить.

Проще говоря так.
Графа var left = parseInt(1449507600 - t); это нужное время и оно смотрит в графу var t = 1448912652;
Которое статичное, а на сайте там был скорее всего php сервер часов. В итоге как код взят в то время так он и остался. 7 дней 5 часов 3 секунды будет постоянно при обновлении страницы и свое время задать нельзя, так как время высчитывается из времени на сайте которое указывается в var t = 1448912652;
Нужно обойти запрос к серверу времени на часах к этому var t = 1448912652;
Чтобы просто были обычные часы по команде var left = parseInt(1449507600 - t); или любой другой которая заставит часы отсчитывать время а не стоять на месте.

redissx
Юзер

redissx - 19 мая 2018 15:52 -

Вроде это unix время или time stamp. 1449507600 = Date: 07.12.2015 @ 20:00:00 MSK (GTM +03:00). Онлайн калькулятор https://www.bl2.ru/programing/timestamp.html

Я так понял, тут не работает просто счетчик. А не работает, тк даты устарели. Ставьте новые даты, посчитанные калькулятором и все.

СеммиДжо
Юзер

СеммиДжо - 19 мая 2018 19:40 -

Цитата: redissx
Я так понял, тут не работает просто счетчик. А не работает, тк даты устарели. Ставьте новые даты, посчитанные калькулятором и все.

Правильно поняли и неправильно. Скорее всего это unix но на сайте стоит что-то что меняет время на сервере сайта, и этот счетчик меняется подходя к дате что указана во второй команде или вроде. Так как я поменял по системе меняя второе значение получилось

1526747700
До выхода следующей серии осталось:900 дней и 20:49:46
Хотя указал 2 минуты до даты. Если вставить в первое значение то часы исчезают.

Можно сделать так чтобы оно сверялось с одной датой а не с двумя?

СеммиДжо
Юзер

СеммиДжо - 19 мая 2018 19:52 -

Указал с двойным изменением теперь новость как на рекламный лайтверах вечно 5 минут до стечения срока
var t = 1526748300;

if(t>0){
var left = parseInt(1526748600 - t);

Как обойти один параметр? на сайте нет скрипта обновляющего автоматом время на сервере сайта

redissx
Юзер

redissx - 19 мая 2018 20:16 -

Никаких обращений к серверу в скрипте нет. А параметр не убрать, тк этот параметр и есть суть скрипта, от него все и считает. t - это заданная дата, а 1449507600 - текущая, которая почему-то тут статична. Гуглите более понятный скрипт счетчика, где в понятном виде задаются даты и забудьте про этот скрипт.

СеммиДжо
Юзер

СеммиДжо - 19 мая 2018 20:36 -

Часов у меня полно разных но нету вывода команды (До выхода следующей серии осталось:<span>"+ days + " "+ dd + " и " + hours +":"+ minutes +":"+ seconds+)
Можно что-то сделать как-то изменить или привязать другой скрипт часов к команде выхода серий?

redissx
Юзер

redissx - 19 мая 2018 21:12 -

Скрипт рабочий. Наверное. Я не проверял. Единственное, очевидно, что текущая дата должна изменяться. Поэтому впишу это в скрипт, но не проверял и не буду.

var t = 1448912652, currentTime = Math.floor(Date.now() / 1000);

			if(t>0){
			var left = parseInt(currentTime - t);
			setInterval(function() {
			  var foo = new Date;
			  left = left - 1;
			  //console.log(t, typeof(l));
			  if (left > 0){
			  minutes = left / 60 | 0,
			  hours = minutes / 60 | 0,
			  days = hours / 24 | 0,
			  hours = hours % 24;
			  if (hours < 10){hours = "0"+hours};
			seconds = left%60;
			  if (seconds < 10){seconds = "0"+seconds};
			minutes %= 60;
			  if (minutes < 10){minutes = "0"+minutes};
			  dd = " дней ";
			  tid = "";
			  if (days == 1){dd = " день "};
			  if (days < 5 && days > 1){dd = " дня "};
			  if (days > 0){tid = days + dd};
			  document.getElementById('nextserial').style.display="block";
			  if(days>0){
			  document.getElementById('nextserial').innerHTML = "До выхода следующей серии осталось:<span>"+ days + " "+ dd + " и " + hours +":"+ minutes +":"+ seconds+"</span>";
			  } else document.getElementById('nextserial').innerHTML = "До выхода следующей серии осталось:<span>"+ days + ":" + hours +":"+ minutes +":"+ seconds+"</span>"; 
			  }
		  }, 1000);
			} 	

СеммиДжо
Юзер

СеммиДжо - 19 мая 2018 21:28 -

Цитата: redissx
Скрипт рабочий. Наверное. Я не проверял. Единственное, очевидно, что текущая дата должна изменяться. Поэтому впишу это в скрипт, но не проверял и не буду.

Спасибо, но оно не работает. Менять только надо var t = 1448912652 например на 1526757720 или еще что-то? Если так то будущию дату вообще не отсчитывает.

redissx
Юзер

redissx - 19 мая 2018 21:41 -

var t - это и есть искомая дата. Ее и надо установить.
Хотя возможно местами перепутал и надо
var t =  Math.floor(Date.now() / 1000), targetDate = 1448912652;

			if(t>0){
			var left = parseInt(targetDate - t);
			setInterval(function() {
			  var foo = new Date;
			  left = left - 1;
			  //console.log(t, typeof(l));
			  if (left > 0){
			  minutes = left / 60 | 0,
			  hours = minutes / 60 | 0,
			  days = hours / 24 | 0,
			  hours = hours % 24;
			  if (hours < 10){hours = "0"+hours};
			seconds = left%60;
			  if (seconds < 10){seconds = "0"+seconds};
			minutes %= 60;
			  if (minutes < 10){minutes = "0"+minutes};
			  dd = " дней ";
			  tid = "";
			  if (days == 1){dd = " день "};
			  if (days < 5 && days > 1){dd = " дня "};
			  if (days > 0){tid = days + dd};
			  document.getElementById('nextserial').style.display="block";
			  if(days>0){
			  document.getElementById('nextserial').innerHTML = "До выхода следующей серии осталось:<span>"+ days + " "+ dd + " и " + hours +":"+ minutes +":"+ seconds+"</span>";
			  } else document.getElementById('nextserial').innerHTML = "До выхода следующей серии осталось:<span>"+ days + ":" + hours +":"+ minutes +":"+ seconds+"</span>"; 
			  }
		  }, 1000);
			}

и устанавливать уже надо targetDate

СеммиДжо
Юзер

СеммиДжо - 19 мая 2018 22:15 -

Цитата: redissx
Хотя возможно местами перепутал и надо

Хорошо что заметили ошибку ) Большущее спасибо все заработало, как долго искал решения, уже годы прошли и наконец снизошел долгожданный ответ. Большое спасибо, желаю счастья и удачных проектов )

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

 30.08.2014 mozart_dima  Общие вопросы
наверх