Мне надо, что бы ДИНАМИЧЕСКИ отображалось дата и время.
Но переменная бралась не с системного таймера компа, а с сервака на котором хостишся...
т.е. вот: http://v-ufaley.h15.ru/time.php
в верхней строке мы видем время сервера,
а в нижней строке время системного таймера с нашего компьютера, и оно отображается динамически. т.е. часики в живую тикают...
так вот - вопрос - как передать переменную php - в переменную Java Script ?
Прилагаю сам скрипт. Помогите мне его переделать please...
1. Cyber-Cat - 13 Июня, 2005 - 09:41:48 - перейти к сообщению
2. Леголегс - 13 Июня, 2005 - 10:41:40 - перейти к сообщению
Cyber-Cat
PHP выполняется на сервере и javascript - у юзера и никак ты переменные не переделаешь! Можно конечно передавать время на сервере (статично) и у клиента яваскриптом вычислять разницу и так отображать. Но при этом возникнет ошибка, равная времени доставки страницы от сервера к клиенту.
итак.
Во-первых убери document.open(); - тут это не нужно.
Кроме того лишний
Теперь собственно переделка.
После
Вроде всё.
PS и в старом скрипте и после модификаций будут маленькие глюки если время близко к полуночи.
PPS я ничего не тестировал, сори
PHP выполняется на сервере и javascript - у юзера и никак ты переменные не переделаешь! Можно конечно передавать время на сервере (статично) и у клиента яваскриптом вычислять разницу и так отображать. Но при этом возникнет ошибка, равная времени доставки страницы от сервера к клиенту.
итак.
Во-первых убери document.open(); - тут это не нужно.
Кроме того лишний
CODE:
</script>
<script>
<script>
Теперь собственно переделка.
После
CODE:
var dayNr = ((now.getDate()<10) ? "0" : "")+ now.getDate();
добавь var dayNr = ((now.getDate()<10) ? "0" : "")+ now.getDate();
CODE:
Строкиvar deltaHours = now.getHours() - $hours;
var deltaMinutes = now.getMinutes() - $minutes;
var deltaSeconds = now.getSeconds() - $seconds;
var deltaMinutes = now.getMinutes() - $minutes;
var deltaSeconds = now.getSeconds() - $seconds;
CODE:
замени на intHours = today.getHours();
intMinutes = today.getMinutes();
intSeconds = today.getSeconds();
intMinutes = today.getMinutes();
intSeconds = today.getSeconds();
CODE:
После строки intHours = today.getHours() - deltaHours;
intMinutes = today.getMinutes() - deltaMinutes;
intSeconds = today.getSeconds() - deltaSeconds;
intMinutes = today.getMinutes() - deltaMinutes;
intSeconds = today.getSeconds() - deltaSeconds;
PHP:
допиши $time=date("H:i:s"); // часы:минуты:секунды
PHP:
$hours=date("H");
$minutes=date("i");
$seconds=date("s");
$minutes=date("i");
$seconds=date("s");
Вроде всё.
PS и в старом скрипте и после модификаций будут маленькие глюки если время близко к полуночи.
PPS я ничего не тестировал, сори
3. ETC - 13 Июня, 2005 - 10:53:37 - перейти к сообщению
Леголегс
А ты вспомни как сделано в гостевой народа, там через число делается, но вот я не помню, как вывести через PHP тоже самое...
А ты вспомни как сделано в гостевой народа, там через число делается, но вот я не помню, как вывести через PHP тоже самое...
4. Cyber-Cat - 13 Июня, 2005 - 11:16:27 - перейти к сообщению
Леголегс пишет:
Можно конечно передавать время на сервере (статично) и у клиента яваскриптом вычислять разницу и так отображать. Но при этом возникнет ошибка, равная времени доставки страницы от сервера к клиенту
Разница в 1 - 3 секунды для меня не суть важна...
Я же не сервер точного времени
Главное что бы на моем сайте отображались дата и время денамически, и переменная бралась с сервера (с хостинга), а не с таймера компа - дату и время которого давно уже не проверяли
В принцепе, если можно как то это сделать без Java Script, чисто на PHP - то меня и это устроит... лижбы, еще повторюсь, отображалось динамически...
5. Леголегс - 13 Июня, 2005 - 11:17:11 - перейти к сообщению
ETC пишет:
"Число" - это такое длинное целое, которое обозначает количество миллисекунд, прошедших с начала "эпохи юникс" (1 янв 1970г) ? Я пхп почти не знаю не говоря уж про такие тонкости. Да и времени у меня нет хороший скрипт писать Уж извините. Экзамен завтра.\n\n(Добавление)А ты вспомни как сделано в гостевой народа, там через число делается, но вот я не помню, как вывести через PHP тоже самое...
Cyber-Cat пишет:
"динамически" и "пхп" - слабосовместимые понятия. Так ты попробовал этот вариант?
В принцепе, если можно как то это сделать без Java Script, чисто на PHP - то меня и это устроит... лижбы, еще повторюсь, отображалось динамически...
6. Cyber-Cat - 13 Июня, 2005 - 11:25:43 - перейти к сообщению
Леголегс
Только что внес все изменения которые ты предложил,
вот что получилась: http://v-ufaley.h15.ru/time2.php
т.е. во второй строке - пропало время
Только что внес все изменения которые ты предложил,
вот что получилась: http://v-ufaley.h15.ru/time2.php
т.е. во второй строке - пропало время
7. Леголегс - 13 Июня, 2005 - 11:34:32 - перейти к сообщению
ага. Cyber-Cat, исправляй
CODE:
на var deltaHours = now.getHours() - $hours;
var deltaMinutes = now.getMinutes() - $minutes;
var deltaSeconds = now.getSeconds() - $seconds;
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);?>;
var deltaMinutes = now.getMinutes() - <?echo($minutes);?>;
var deltaSeconds = now.getSeconds() - <?echo($seconds);?>;
8. Cyber-Cat - 13 Июня, 2005 - 11:47:52 - перейти к сообщению
Леголегс
О! Другое дело! Заработал!
Но, млин, все таки что то не то этот скрипт считает...
т.е. секунды доходят до 60 и идут дальше... 61,62,63 и т.д.
тоже самое с минутами и часами...
к тому же если подправить системный таймер у себя на компе - на скрипте уже появляются другие цифры.
Т.е. все равно дата и время , получается зависимы от системного таймера.
А они не должны зависить от него. Тока от сервера.
Понаблюдай: http://v-ufaley.h15.ru/time1.php
Мне кажется что гдето тут:
или тут:
не понятные какие то вычисления...
Зачем отнимать время системного таймера от времени сервера?
Нильзя как то проще взять время сервера, и передать его скрипту?
Пусть даже черех запись во временный файл...?
О! Другое дело! Заработал!
Но, млин, все таки что то не то этот скрипт считает...
т.е. секунды доходят до 60 и идут дальше... 61,62,63 и т.д.
тоже самое с минутами и часами...
к тому же если подправить системный таймер у себя на компе - на скрипте уже появляются другие цифры.
Т.е. все равно дата и время , получается зависимы от системного таймера.
А они не должны зависить от него. Тока от сервера.
Понаблюдай: http://v-ufaley.h15.ru/time1.php
Мне кажется что гдето тут:
CODE:
intHours = today.getHours() - deltaHours;
intMinutes = today.getMinutes() - deltaMinutes;
intSeconds = today.getSeconds() - deltaSeconds;
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);?>;
var deltaHours = now.getHours() - <?echo($hours);?>;
var deltaMinutes = now.getMinutes() - <?echo($minutes);?>;
var deltaSeconds = now.getSeconds() - <?echo($seconds);?>;
не понятные какие то вычисления...
Зачем отнимать время системного таймера от времени сервера?
Нильзя как то проще взять время сервера, и передать его скрипту?
Пусть даже черех запись во временный файл...?
9. Леголегс - 13 Июня, 2005 - 13:33:32 - перейти к сообщению
Cyber-Cat пишет:
да, это надо поправить. После секунды доходят до 60 и идут дальше... 61,62,63
CODE:
добавь intSeconds = today.getSeconds() - deltaSeconds;
CODE:
if (intSeconds>=60) {
intSeconds-=60;
intMinutes++;
}
if (intMinutes>=60) {
intMinutes-=60;
intHours++;
}
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) до текущего времени.
Возвращает количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970, 00:00:00 GMT) до текущего времени.
10. TvoyWeb - 13 Июня, 2005 - 16:16:58 - перейти к сообщению
Cyber-Cat пишет:
а не с таймера компа - дату и время которого давно уже не проверяли
Даже если передать время с сервака и вычислить разницу во времени между серверным и клиентским компом, все равно минуты и секунды берутся с компа клиента. ИМХО все это не стоит свеч.
Леголегс пишет:
int time ( void )
Можно вычислить только время в часах и передать его JS.