|
|
|
| Здравствуйте. Как вы думаете как сделать часы реального времени на строне клиента? Т.е. обычные javascript часы показывают время, которое стоит у клиента.. на php - date показывает время сервера. А КАК сделать часы формата HH:mm:ss (обращаю внимание, что есть и секунды) на странице, которые бы показывали время сервера??? В моем случае сервер стоит в Москве, и чтобы люди, пришедшие из Барнаула, увидели московское время...Причем чтобы эти часы ходили.. А не обновлялись через F5.. Спасибо.. | |
|
|
|
|
|
|
|
для: spiner
(07.07.2005 в 02:55)
| | Легко , при загрузке в javascript-переменную заносится текущее время, а потом прибавляем к нему секунды.. | |
|
|
|
|
|
|
|
для: spiner
(07.07.2005 в 02:55)
| | Да! Isset прав, но есть одно но.
Скрипт запускается при полной загрузке.
Т.е. Сервер обработал скрипт и выдает его в броузер чела.
Если у чела (посетителя) инет не быстрый, то возможно что время которое сервер выдаст и время в которое скрипт начнет функциклировать будут разным.
Максимум погрешность будет на 1мин. Всё зависит от скорости инета... | |
|
|
|
|
|
|
|
для: cernos
(07.07.2005 в 08:21)
| | А как секунды прибавить? Не могли бы вы привести пример кода? Очень нужно.. Спасибо. | |
|
|
|
|
|
|
|
для: spiner
(07.07.2005 в 08:55)
| | В JavaScripte есть такое как SetInterval();
Вызов функции через какойто промежуток времени
SetInterval(Функция, 1000); 1000 - это 1 секунда
Вроде так!
Поищите работу этой функции в поиске на данном форуме. | |
|
|
|
|
|
|
|
для: cernos
(07.07.2005 в 12:08)
| | Вот нашел скрипт, и кое как его подправил.. Просто мои познания в JS приравниваются к уровню моря.. Посмотрите пожалуйста скрипт и он ругается на 29 строчку, и как вывести эту дату?
<script language="javascript">
<!--
var SrvDate = new Date();
SrvDate.setFullYear(<? getdate("year"); ?>);
SrvDate.setMonth(<? getdate("month") ?>);
SrvDate.setDate(<? getdate("wday") ?>);
SrvDate.setHours(<? getdate("hours") ?>);
SrvDate.setMinutes(<? getdate("minutes") ?>);
SrvDate.setSeconds(<? getdate("seconds") ?>);
var i = SrvDate.getSeconds();
function timeGo()
{
SrvDate.setSeconds(i);
if (i >= 60) i = 1;
else i++;
second = SrvDate.getSeconds();
hour = SrvDate.getHours();
minute = SrvDate.getMinutes();
day = SrvDate.getDate();
month = SrvDate.getMonth();
year = SrvDate.getFullYear();
if (second < = 9) second = "0" + second;
if (minute < = 9) minute = "0" + minute;
if (hour < = 9) hour = "0" + hour;
if (day < = 9) day = "0" + day;
if (month < = 9) month = "0" + month;
setTimeout("timeGo()", 1000);
this.document.all.spanSrvDate.innerHTML = day + "." + month + "." + year + " "
+ hour + ":" + minute + ":" + second;
}
timeGo();
// -->
</script>
|
100% я намудрил с переменными из PHP в JS... | |
|
|
|
|
|
|
|
для: spiner
(07.07.2005 в 12:51)
| | пожалуйста, посмотрите, знатоки javascript.. | |
|
|
|
|
|
|
|
для: spiner
(07.07.2005 в 12:51)
| | Та ошибка, которую он выдавал была связана с оператором <=, который записан как < =
<script language="javascript">
<!--
var SrvDate = new Date();
SrvDate.setFullYear(<? getdate("year"); ?>);
SrvDate.setMonth(<? getdate("month") ?>);
SrvDate.setDate(<? getdate("wday") ?>);
SrvDate.setHours(<? getdate("hours") ?>);
SrvDate.setMinutes(<? getdate("minutes") ?>);
SrvDate.setSeconds(<? getdate("seconds") ?>);
var i = SrvDate.getSeconds();
function timeGo()
{
SrvDate.setSeconds(i);
if (i >= 60) i = 1;
else i++;
second = SrvDate.getSeconds();
hour = SrvDate.getHours();
minute = SrvDate.getMinutes();
day = SrvDate.getDate();
month = SrvDate.getMonth();
year = SrvDate.getFullYear();
if (second <= 9) second = "0" + second;
if (minute <= 9) minute = "0" + minute;
if (hour <= 9) hour = "0" + hour;
if (day <= 9) day = "0" + day;
if (month <= 9) month = "0" + month;
setTimeout("timeGo()", 1000);
this.document.all.spanSrvDate.innerHTML = day + "." + month + "." + year + " "
+ hour + ":" + minute + ":" + second;
}
timeGo();
// -->
</script>
|
Но у меня всё-равно сбоит, я так понимаю уже из-за getdate(), которого он не может найти... | |
|
|
|
|
|
|
|
для: cheops
(12.07.2005 в 00:54)
| | Есть такая мысль. А что, если сперва грузить пустую страничку, считывающую системное время юзверя, передавать его на сервер, тот высчитывает разницу и передает ее как поправку к стандартному скрипту времени :-). | |
|
|
|
|
автор: MVH (26.08.2005 в 22:48) |
|
|
для: cheops
(12.07.2005 в 00:54)
| | Проблема не в JS, а в php. Ф-я getdate() вообщето массив возвращает, и в параметрах у неё можно только время в timestamp указать. Используйте в php для этой цели date() вместо getdate().
Описание тут:
http://ru.php.net/manual/en/function.date.php | |
|
|
|
|
автор: MVH (26.08.2005 в 23:06) |
|
|
для: MVH
(26.08.2005 в 22:48)
| | Т.е. в итоге будет так:
SrvDate.setFullYear(<?=date('Y');?>);
SrvDate.setMonth(<?=date('n')?>);
SrvDate.setDate(<?=date('j')?>);
SrvDate.setHours(<?=date('H')?>);
SrvDate.setMinutes(<?=date('i')?>);
SrvDate.setSeconds(<?=date('s')?>); | |
|
|
|