Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#24 used as offset, casting to integer (24) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#27 used as offset, casting to integer (27) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Помогите совместить 2 скрипта
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (2): [1] 2 »   

> Описание: PHP + Java Script
Cyber-Cat
Отправлено: 13 Июня, 2005 - 09:41:48
Post Id



Advanced Member


Покинул форум
Сообщений всего: 434
Дата рег-ции: Март 2005  
Откуда: From CyberLand

Карма 0




Мне надо, что бы ДИНАМИЧЕСКИ отображалось дата и время.
Но переменная бралась не с системного таймера компа, а с сервака на котором хостишся...

т.е. вот: http://v-ufaley.h15.ru/time.php
в верхней строке мы видем время сервера,
а в нижней строке время системного таймера с нашего компьютера, и оно отображается динамически. т.е. часики в живую тикают...

так вот - вопрос - как передать переменную php - в переменную Java Script ?

Прилагаю сам скрипт. Помогите мне его переделать please...
Скачать файл: time.zip
Скачан раз: 642
 
 Top
Леголегс Администратор
Отправлено: 13 Июня, 2005 - 10:41:40
Post Id



JS-маньяк


Покинул форум
Сообщений всего: 2109
Дата рег-ции: Июль 2004  
Откуда: Липецк

Карма 17




Cyber-Cat
PHP выполняется на сервере и javascript - у юзера и никак ты переменные не переделаешь! Можно конечно передавать время на сервере (статично) и у клиента яваскриптом вычислять разницу и так отображать. Но при этом возникнет ошибка, равная времени доставки страницы от сервера к клиенту.
итак.
Во-первых убери document.open(); - тут это не нужно.
Кроме того лишний
CODE:
</script>

<script>

Теперь собственно переделка.
После
CODE:

var dayNr = ((now.getDate()<10) ? "0" : "")+ now.getDate();
добавь
CODE:
var deltaHours = now.getHours() - $hours;
var deltaMinutes = now.getMinutes() - $minutes;
var deltaSeconds = now.getSeconds() - $seconds;
Строки
CODE:
intHours = today.getHours();
intMinutes = today.getMinutes();
intSeconds = today.getSeconds();
замени на
CODE:
intHours = today.getHours() - deltaHours;
intMinutes = today.getMinutes() - deltaMinutes;
intSeconds = today.getSeconds() - deltaSeconds;
После строки
PHP:
$time=date("H:i:s"); // часы:минуты:секунды
допиши
PHP:
$hours=date("H");
$minutes=date("i");
$seconds=date("s");

Вроде всё.
PS и в старом скрипте и после модификаций будут маленькие глюки если время близко к полуночи.
PPS я ничего не тестировал, сори
 
 Top
ETC Администратор
Отправлено: 13 Июня, 2005 - 10:53:37
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




Леголегс
А ты вспомни как сделано в гостевой народа, там через число делается, но вот я не помню, как вывести через PHP тоже самое...
 
 Top
Cyber-Cat
Отправлено: 13 Июня, 2005 - 11:16:27
Post Id



Advanced Member


Покинул форум
Сообщений всего: 434
Дата рег-ции: Март 2005  
Откуда: From CyberLand

Карма 0




Леголегс пишет:
Можно конечно передавать время на сервере (статично) и у клиента яваскриптом вычислять разницу и так отображать. Но при этом возникнет ошибка, равная времени доставки страницы от сервера к клиенту

Разница в 1 - 3 секунды для меня не суть важна...
Я же не сервер точного времени Подмигивание
Главное что бы на моем сайте отображались дата и время денамически, и переменная бралась с сервера (с хостинга), а не с таймера компа - дату и время которого давно уже не проверяли Улыбка

В принцепе, если можно как то это сделать без Java Script, чисто на PHP - то меня и это устроит... лижбы, еще повторюсь, отображалось динамически...
 
 Top
Леголегс Администратор
Отправлено: 13 Июня, 2005 - 11:17:11
Post Id



JS-маньяк


Покинул форум
Сообщений всего: 2109
Дата рег-ции: Июль 2004  
Откуда: Липецк

Карма 17




ETC пишет:
А ты вспомни как сделано в гостевой народа, там через число делается, но вот я не помню, как вывести через PHP тоже самое...
"Число" - это такое длинное целое, которое обозначает количество миллисекунд, прошедших с начала "эпохи юникс" (1 янв 1970г) ? Я пхп почти не знаю не говоря уж про такие тонкости. Да и времени у меня нет хороший скрипт писать Недовольство, огорчение Уж извините. Экзамен завтра.\n\n(Добавление)
Cyber-Cat пишет:
В принцепе, если можно как то это сделать без Java Script, чисто на PHP - то меня и это устроит... лижбы, еще повторюсь, отображалось динамически...
"динамически" и "пхп" - слабосовместимые понятия. Так ты попробовал этот вариант?
 
 Top
Cyber-Cat
Отправлено: 13 Июня, 2005 - 11:25:43
Post Id



Advanced Member


Покинул форум
Сообщений всего: 434
Дата рег-ции: Март 2005  
Откуда: From CyberLand

Карма 0




Леголегс
Только что внес все изменения которые ты предложил,
вот что получилась: http://v-ufaley.h15.ru/time2.php
т.е. во второй строке - пропало время Недовольство, огорчение
 
 Top
Леголегс Администратор
Отправлено: 13 Июня, 2005 - 11:34:32
Post Id



JS-маньяк


Покинул форум
Сообщений всего: 2109
Дата рег-ции: Июль 2004  
Откуда: Липецк

Карма 17




ага. Cyber-Cat, исправляй
CODE:
var deltaHours = now.getHours() - $hours;
var deltaMinutes = now.getMinutes() - $minutes;
var deltaSeconds = now.getSeconds() - $seconds;
на
CODE:
var deltaHours = now.getHours() - <?echo($hours);?>;
var deltaMinutes = now.getMinutes() - <?echo($minutes);?>;
var deltaSeconds = now.getSeconds() - <?echo($seconds);?>;
теперь заработает
 
 Top
Cyber-Cat
Отправлено: 13 Июня, 2005 - 11:47:52
Post Id



Advanced Member


Покинул форум
Сообщений всего: 434
Дата рег-ции: Март 2005  
Откуда: From CyberLand

Карма 0




Леголегс
О! Другое дело! Заработал!

Но, млин, все таки что то не то этот скрипт считает... Недовольство, огорчение
т.е. секунды доходят до 60 и идут дальше... 61,62,63 и т.д.
тоже самое с минутами и часами...

к тому же если подправить системный таймер у себя на компе - на скрипте уже появляются другие цифры.
Т.е. все равно дата и время , получается зависимы от системного таймера.
А они не должны зависить от него. Тока от сервера.
Понаблюдай: http://v-ufaley.h15.ru/time1.php

Мне кажется что гдето тут:
CODE:

intHours = today.getHours() - deltaHours;
intMinutes = today.getMinutes() - deltaMinutes;
intSeconds = today.getSeconds() - deltaSeconds;

или тут:
CODE:

var deltaHours = now.getHours() - <?echo($hours);?>;
var deltaMinutes = now.getMinutes() - <?echo($minutes);?>;
var deltaSeconds = now.getSeconds() - <?echo($seconds);?>;


не понятные какие то вычисления...
Зачем отнимать время системного таймера от времени сервера?

Нильзя как то проще взять время сервера, и передать его скрипту?
Пусть даже черех запись во временный файл...?
 
 Top
Леголегс Администратор
Отправлено: 13 Июня, 2005 - 13:33:32
Post Id



JS-маньяк


Покинул форум
Сообщений всего: 2109
Дата рег-ции: Июль 2004  
Откуда: Липецк

Карма 17




Cyber-Cat пишет:
секунды доходят до 60 и идут дальше... 61,62,63
да, это надо поправить. После
CODE:
intSeconds = today.getSeconds() - deltaSeconds;
добавь
CODE:
if (intSeconds>=60) {
intSeconds-=60;
intMinutes++;
}
if (intMinutes>=60) {
intMinutes-=60;
intHours++;
}
Cyber-Cat пишет:
если подправить системный таймер у себя на компе
на это скрипт не расчитан. Он просто находит разницу между временем сервера и клиента и вносит поправки при отображении. По другому почти никак.
Cyber-Cat пишет:
Зачем отнимать время системного таймера от времени сервера?
Вот тут как раз и находится разница времён.
Cyber-Cat пишет:
Нильзя как то проще взять время сервера, и передать его скрипту?
Нильзя. Принцип только такой. Или ты предлагаешь загружат время каждую секунду?
Cyber-Cat пишет:
Пусть даже черех запись во временный файл...?
??? чаво куда записывать??? По моему если я сохраню свои часы под стотонным прессом, то они начнут отставать Подмигивание
Млин, это скрипт стоило бы переписать заново. Но я смогу только завтра а может и позже. Cyber-Cat, возможно ETС или Дмитрий помогут тебе.\n\n(Добавление)
нашёл функцию php
php.net пишет:
int time ( void )
Возвращает количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970, 00:00:00 GMT) до текущего времени.
 
 Top
TvoyWeb Администратор
Отправлено: 13 Июня, 2005 - 16:16:58
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




Cyber-Cat пишет:
а не с таймера компа - дату и время которого давно уже не проверяли

Даже если передать время с сервака и вычислить разницу во времени между серверным и клиентским компом, все равно минуты и секунды берутся с компа клиента. ИМХО все это не стоит свеч.
Леголегс пишет:
int time ( void )

Можно вычислить только время в часах и передать его JS.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0393]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33