Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2017, 03:17   #11
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Посмотри в консоли, что возвращают выражения today.getUTCHours(), getUTCMinutes(), today.getUTCSeconds() – и подбери под них соответствующие форматы для PHP-функции date().
Затем просто подставь полученные значения в javascript:
Код:
...
var s1=<?php echo date('s'); ?>;
...
Andkorol вне форума Ответить с цитированием
Старый 20.01.2017, 03:55   #12
maks1331
Форумчанин
 
Аватар для maks1331
 
Регистрация: 20.12.2016
Сообщений: 270
По умолчанию

Спасибо, отпишусь о результатах завтра
формошлеп.рф
witech.su
maks1331 вне форума Ответить с цитированием
Старый 20.01.2017, 14:34   #13
maks1331
Форумчанин
 
Аватар для maks1331
 
Регистрация: 20.12.2016
Сообщений: 270
По умолчанию

После замены GetUTC--- скрипт вообще перестаёт хоть как то работать
формошлеп.рф
witech.su
maks1331 вне форума Ответить с цитированием
Старый 20.01.2017, 14:40   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от maks1331 Посмотреть сообщение
После замены GetUTC--- скрипт вообще перестаёт хоть как то работать
покажите скрипт целиком
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.01.2017, 14:50   #15
maks1331
Форумчанин
 
Аватар для maks1331
 
Регистрация: 20.12.2016
Сообщений: 270
По умолчанию

код который нужно поправить
Код HTML:
<script>
		function startTime1() {
 			var today=new Date(Date.now()+14400000);
 			var h1=today.getUTCHours()-30;
			var m1=today.getUTCMinutes();
 			var s1=today.getUTCSeconds();
 			h1=checkTime(h1);
 			if (24<=h1) {h1 = h1-24};
 			m1=checkTime(59-m1);
 			s1=checkTime(59-s1);
 			document.getElementById('txt1').innerHTML = h1+":"+m1+":"+s1;
 			var t = setTimeout(function(){startTime1()},500);
		}
		function checkTime(i) {
 			if (i<0) {i = i*(-1)};
 			if (i<10) {i = "0" + i};
 		return i;
		}
	</script>
вот собственно код, который пахать не будет
Код HTML:
<script>
		function startTime1() {
 			var today=new Date(Date.now()+14400000);
 			var h1=today.getUTCHours()-30;
			var m1=today.getUTCMinutes();
 			var s1=<?php echo date('s'); ?>;
 			h1=checkTime(h1);
 			if (24<=h1) {h1 = h1-24};
 			m1=checkTime(59-m1);
 			s1=checkTime(59-s1);
 			document.getElementById('txt1').innerHTML = h1+":"+m1+":"+s1;
 			var t = setTimeout(function(){startTime1()},500);
		}
		function checkTime(i) {
 			if (i<0) {i = i*(-1)};
 			if (i<10) {i = "0" + i};
 		return i;
		}
	</script>
формошлеп.рф
witech.su
maks1331 вне форума Ответить с цитированием
Старый 20.01.2017, 15:12   #16
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Тут вариант с PHP не пройдёт, т.к. функция вызывает сама себя рекурсивно – а данные с сервера на клиент поступают только один раз.
При повторном вызове эти данные просто не обновляются, т.к. нового запроса к серверу нет – а дёргать сервер раз в пол-секунды это не вариант.
Нужно искать другую реализацию, основанную на обратном отсчёте от заданного timestamp – который будет разово передаваться с сервера в javascript.
Andkorol вне форума Ответить с цитированием
Старый 20.01.2017, 15:59   #17
maks1331
Форумчанин
 
Аватар для maks1331
 
Регистрация: 20.12.2016
Сообщений: 270
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Нужно искать другую реализацию, основанную на обратном отсчёте от заданного timestamp – который будет разово передаваться с сервера в javascript.
Вот это уже интересненько... Имеешь в виду задать статичную точку отсчёта?
формошлеп.рф
witech.su
maks1331 вне форума Ответить с цитированием
Старый 20.01.2017, 16:07   #18
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от maks1331 Посмотреть сообщение
Имеешь в виду задать статичную точку отсчёта?
можно задать смещение от текущего локального времени:
Код:
<script>
        var diff = <?php echo time()*1000; ?> - ( new Date().valueOf());
	function startTime1() {
		var today=new Date( Date.now().valueOf() + diff );
 		var h1=today.getUTCHours();
		var m1=today.getUTCMinutes();		
		var s1=today.getUTCSeconds();
 		h1=checkTime(h1);
 		if (24<=h1) {h1 = h1-24};
 		m1=checkTime(59-m1);
 		s1=checkTime(59-s1);
 		document.getElementById('txt1').innerHTML = h1+":"+m1+":"+s1;
 		var t = setTimeout(function(){startTime1()},500);
	}
.....
</script>
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.01.2017, 16:13   #19
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Оригинальный скрипт вообще малопонятен в плане своего назначения.
Что он считает, и зачем?
Скрипт при каждом вызове получает временную метку Unix, каждый раз прибавляя к ней 14400000.
Смысл?
Andkorol вне форума Ответить с цитированием
Старый 20.01.2017, 16:19   #20
maks1331
Форумчанин
 
Аватар для maks1331
 
Регистрация: 20.12.2016
Сообщений: 270
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Оригинальный скрипт вообще малопонятен в плане своего назначения.
Что он считает, и зачем?
Скрипт при каждом вызове получает временную метку Unix, каждый раз прибавляя к ней 14400000.
Смысл?
Не думаю, что назначение скрипта имеет хоть какое то значение, ну ладно, у меня в течение дня происходит три события, в 6, 14 и 22 часа по МСК. Задача скрипта, вести соответствующий обратный отсчёт до начала события по времени МСК (независимо от локального времени пользователя). Оригинальный же скрипт работает как нужно, единственное, он берёт локальное время пользователя и соответственно, при отставании его или наоборот - будет выдавать не корректные данные.
формошлеп.рф
witech.su
maks1331 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Время на сайт с сервера grelem JavaScript, Ajax 1 04.12.2012 15:53
Запуск программы в определенное время ( день и время ) artbotva Общие вопросы Delphi 4 09.11.2012 15:05
Большое время ожидания ответа сервера pest11 БД в Delphi 9 29.03.2012 08:16
Время сервера Veiron БД в Delphi 7 30.06.2009 19:15
Время нажатия на кнопку мыши(Время реакции) Кирилл13 Помощь студентам 1 11.04.2009 19:41