Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Часы, часы, часы.

Сообщения:  [1-9] 

 
 автор: Axis4u   (29.10.2008 в 11:22)   письмо автору
 
   для: PAT   (27.10.2008 в 13:08)
 

Спасибо PAT.Помог и я понял свои ошибки.

  Ответить  
 
 автор: PAT   (27.10.2008 в 13:08)   письмо автору
 
   для: Axis4u   (27.10.2008 в 07:24)
 

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=win-1251">
<script>
<?php
$d 
gmdate("H:i:s");
$s "var serverGMTtime = '".$d."';\n";
echo 
$s;
?> 
var NULLstart = parseInt (new Date ().valueOf () / 1000, 10);

function fTZ (r, d, obj_id, tz)
{
var x = new Array ();
x [0] = r [0]; x [1] = r [1]; x [2] = r [2];
x [2] += d; var P = 0; if (x [2] > 59) {x [2] -= 60; P = 1}
x [1] += P; var P = 0; if (x [1] > 59) {x [1] -= 60; P = 1}
x [0] += (P + tz * 1); if (x [0] > 23) x [0] -= 24; else if (x [0] < 0) x [0] = 24 + x [0];
document.getElementById (obj_id).innerHTML = ((x [0] < 10) ? '0' : '') + x [0] + ':' + ((x [1] < 10) ? '0' : '') + x [1] + ':' + ((x [2] < 10) ? '0' : '') + x [2];
}

function fRead (s)
{
var t = s.split (':');
t [0] = ((t [0].charAt (0) == '0') ? t [0].charAt (1) : t [0]) * 1;
t [1] = ((t [1].charAt (0) == '0') ? t [1].charAt (1) : t [1]) * 1;
t [2] = ((t [2].charAt (0) == '0') ? t [2].charAt (1) : t [2]) * 1;
return t;
}

function myFunc2 ()
{
fTZ (fRead (document.getElementById ('vlad1').innerHTML), 1, 'vlad1', 0); //Владивосток + 1сек
fTZ (fRead (document.getElementById ('mos1').innerHTML) , 1, 'mos1' , 0); //Москва + 1сек
fTZ (fRead (document.getElementById ('toc1').innerHTML) , 1, 'toc1' , 0); //Токио + 1сек
fTZ (fRead (document.getElementById ('ny1').innerHTML)  , 1, 'ny1'  , 0); //Нью-Йорк + 1сек
fTZ (fRead (document.getElementById ('la1').innerHTML)  , 1, 'la1'  , 0); //Лос-Анжелес + 1сек
}

onload = function ()
{
var Z = fRead (serverGMTtime);
var delta = parseInt (new Date ().valueOf () / 1000, 10) - NULLstart;
fTZ (Z, delta, 'vlad1', 10); //Владивосток старт
fTZ (Z, delta, 'mos1' ,  3); //Москва старт
fTZ (Z, delta, 'toc1' ,  9); //Токио старт
fTZ (Z, delta, 'ny1'  , -4); //Нью-Йорк старт
fTZ (Z, delta, 'la1'  , -7); //Лос-Анжелес старт

setInterval (myFunc2, 1000);
}
</script>
</head>
<body>
<table cellpadding="10" cellspacing="0">
<tr><td>Владивосток</td><td id="vlad1">&nbsp;</td></tr>
<tr><td>Москва</td><td id="mos1">&nbsp;</td></tr>
<tr><td>Токио</td><td id="toc1">&nbsp;</td></tr>
<tr><td>Нью-Йорк</td><td id="ny1">&nbsp;</td></tr>
<tr><td>Лос-Анжелес</td><td id="la1">&nbsp;</td></tr>
</table>
</body>
</html>
По-хорошему, конечно, надо регулярно по технологии Ajax сверяться с сервером - ибо браузерный таймер весьма сильно зависит от загрузки процессора (включит юзер параллельно что-то байтозатратное, часы на странице отставать начнут)... Но это уже изыски... и за особую дополнительную плату :-)

  Ответить  
 
 автор: Axis4u   (27.10.2008 в 07:24)   письмо автору
 
   для: PAT   (16.10.2008 в 13:33)
 

Что то пробывал сделать не получаеться. Но могли бы вы помочь с полным скриптом?

  Ответить  
 
 автор: PAT   (16.10.2008 в 13:33)   письмо автору
 
   для: Axis4u   (16.10.2008 в 13:12)
 

Начало файла должно быть таким:
<html>
<head>
<script>
<?php
$d 
gmdate("H:i:s");
$s "var serverGMTtime = '".$d."';\n";
echo 
$s;
?>
var NULLstart = parseInt (new Date ().valueOf () / 1000, 10);
</script>
</head>

В итоге вы имеете:
serverGMTtime - время по Гринвичу с сервера на момент начала загрузки страницы

NULLstart - некое броузерное число секунд на момент начала загрузки страницы


После того, как страницу полностью загрузите, можете по window.onload запустить некую функцию myFunc1 () на JS, которая:

1. определит - сколько прошло секунд с момента начала загрузки страницы

2. добавит эти определенные в п.1 секунды к начальному серверному гринвичскому времени и получит текущее время по Гринвичу

3. переведёт гринвичское время во время нужных вам временных зон

4. отобразит полученные значения времени в нужных местах вашей страницы

5. запустит таймер (setInterval) на 1 секунду


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


Разумеется, в обеих функциях необходимо предусмотреть математический аппарат для изменения секунд, минут и часов в случае, когда секунды/минуты/часы переходят через значения 60/60/24.

  Ответить  
 
 автор: Axis4u   (16.10.2008 в 13:12)   письмо автору
 
   для: PAT   (16.10.2008 в 12:20)
 

хех) а что делать если PHP работает только на стороне сервера и не имеет возможности как у JAva) поэтому потихоньку пытаюсь набраться опыт в JS.

  Ответить  
 
 автор: PAT   (16.10.2008 в 12:20)   письмо автору
 
   для: Axis4u   (16.10.2008 в 11:32)
 

>сильно не имею познания на js.

Ну и я вот не умею говорить по-японски.
Ни одного слова не знаю.

И поэтому - я даже и НЕ ПЫТАЮСЬ на японском разговаривать.

Почему, блин, вы, не зная JS, пытаетесь его использовать на своих страницах?
Думаете, что он проще японского? :-)

  Ответить  
 
 автор: Axis4u   (16.10.2008 в 11:32)   письмо автору
 
   для: PAT   (16.10.2008 в 11:20)
 

Так ну с сервера я то возьму его.Например на php.А вот как динамечиски на JS.сильно не имею познания на js.
На php конечно можно вывести всех городов ,но оно же будет фиксированным.=(

  Ответить  
 
 автор: PAT   (16.10.2008 в 11:20)   письмо автору
 
   для: Axis4u   (16.10.2008 в 10:40)
 

Подсказываю: начальное значение времени берёте с сервера. А динамически изменять его можете и на JS.

  Ответить  
 
 автор: Axis4u   (16.10.2008 в 10:40)   письмо автору
 
 

Вот такая проблема.Нужны динамически часы,активные. Но вот я смог только написать,время береться с твоего копьютера.То есть если я изменю время на неправильное то и на сайте у пользователя будет ложное.
Мне надо строго фиксированное время таких городов как Владивосток,Москва,Токио,ЛосАнжелис,Нью-йорк,пусан.Не подскажте?

  Ответить  

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования