Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.10.2011, 19:45
Интересующийся
Отправить личное сообщение для TTongorovortoto Посмотреть профиль Найти все сообщения от TTongorovortoto
 
Регистрация: 21.04.2011
Сообщений: 13

вывод времени php + javascript
Здравствуйте!
Для сайта нужно установить часы разных часовых поясов.
Делаю на php + javascript но не получается. Опишу задачу.
Время необходимо брать из php-функции date. Причем обращение к этой функции должно быть единожды.
Вывод часов должен производиться в блоке div с уникальным id для каждой часовой зоны.
Время должно обновляться каждую секунду для каждого блока div.
Вот что есть:
функция php mytime() :
<?
function mytime($offset=0,$hr=0,$min=0,$sec=0) {
$time_server=date("H:i:s");
$time_arr=explode(":",$time_server);
$time_arr[0]+=$offset;
if ($hr) return $time_arr[0];
elseif ($min) return $time_arr[1];
elseif ($sec) return $time_arr[2];
else return $time_arr[0].":".$time_arr[1].":".$time_arr[2];
}
?>


Код страницы:

<script type="text/javascript">
function showTime()
{
  var stroke = '<? echo mytime(); ?>';
  document
    .getElementById('time_div')
      .innerHTML=stroke;
  setTimeout(showTime,1000); // перерисовать 1 раз в сек.
}
</script>
<h1>time java</h1>
<div id="time_div"></div>
<script type="text/javascript">
  showTime();
</script>


Не обновляется контент, часы не идут.
Просьба за символическую плату дописать этот скрипт.
И реализовать следующее:
1. Сделать несколько строк времени для каждой временной зоны: 0, +1, +3, +9, -5
2. Сделать блоки для вывода времени time_div, time_div1, time_div3...
3. Сделать обновление контента во всех блоках.
4. Обращение к mytime() должно быть 1 раз.

Готов оплатить 300рублей за скрипт.
Ответить с цитированием
  #2 (permalink)  
Старый 28.10.2011, 20:46
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от TTongorovortoto
Не обновляется контент, часы не идут.
и не должны.
при локальном обновлении не всё так просто будет. необходимо будет ещё определять разницу между серверным временем и локальным-чтобы определить в каком поясе пользователь.да и время нужно опрашивать локально-
Сообщение от TTongorovortoto
var stroke = '<? echo mytime(); ?>';
при запуске функции showTime() это время ну никак ни даст,не серверное ,не локальное...

Последний раз редактировалось dmitriymar, 28.10.2011 в 20:48.
Ответить с цитированием
  #3 (permalink)  
Старый 29.10.2011, 00:11
Интересующийся
Отправить личное сообщение для TTongorovortoto Посмотреть профиль Найти все сообщения от TTongorovortoto
 
Регистрация: 21.04.2011
Сообщений: 13

Значит переменные должны быть глобальными.
Внутри функции showTime() сделал только вывод времени и обновление секунд, минут, часов.
В глобальные переменные вынес часы, минуты, секунды.
Внутри рекурсивно вызываемой функции showTime() эти глобальные переменные меняются и печатаются в блоки.
В итоге так стало:
<br>
<script type="text/javascript">
var stroke = '<? echo mytime(3); ?>';
var timearr = stroke.split(/[:]/);
var hour = parseInt(timearr[0]);
document.write(hour);
var minute = parseInt(timearr[1]);
var second = parseInt(timearr[2]);
var hour1 = hour+1;
if (hour1>23) {hour1=0;}
document.write("hour1: ",hour1);
var hour3 = hour+3;
if (hour3>23) {hour3=hour3-24;}
var hour9 = hour+9;
if (hour9>23) {hour9=hour9-24;}
document.write("hour9: ",hour9);
var hourm5 = hour-5;
if (hourm5<0) {hourm5=24+hourm5;}
document.write("hourm5: ",hourm5);
function showTime()
{
  document
    .getElementById('clock')
      .innerHTML=stroke;
  document
    .getElementById('clock1')
      .innerHTML=hour1+":"+minute+":"+second;
  document
    .getElementById('clock3')
      .innerHTML=hour3+":"+minute+":"+second;
  document
    .getElementById('clock9')
      .innerHTML=hour9+":"+minute+":"+second;
  document
    .getElementById('clock-5')
      .innerHTML=hourm5+":"+minute+":"+second;
  
  second=second+1;
  if (second>59) {second=0;minute=minute+1;}
  if (minute>59) 
  {
    minute=0;
    hour=hour+1; 
	hour1 = hour+1;
    hour3 = hour+3;
    hour9 = hrsarr;
    hourm5 = hour-5;
  }
  if (hour>23) {hour=0;}
  
  setTimeout(showTime,1000); // перерисовать 1 раз в сек.
}
</script>


	  
<div id="spacerdiv">&nbsp;</div>
<div id="citytime">
  <div id="city">Лондон</div>
  <div id="clock" class="timedisp"></div>
</div>

<div id="spacerdiv">&nbsp;</div>
<div id="citytime">
  <div id="city">Франкфурт</div>
  <div id="clock1" class="timedisp"></div>
</div>

<div id="spacerdiv">&nbsp;</div>
<div id="citytime">
  <div id="city">Москва</div>
  <div id="clock3" class="timedisp"></div>
</div>

<div id="spacerdiv">&nbsp;</div>
<div id="citytime">
  <div id="city">Токио</div>
  <div id="clock9" class="timedisp"></div>
</div>

<div id="spacerdiv">&nbsp;</div>
<div id="citytime">
  <div id="city">Нью-Йорк</div>
  <div id="clock-5" class="timedisp"></div>
</div>


<script type="text/javascript"> showTime();</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
php + javascript, проверка капчи zhuzha Общие вопросы Javascript 10 02.06.2010 13:30
Как передать картинку из javascript в php KIVagant AJAX и COMET 3 12.05.2010 11:54
javascript и php (Вопрос) Гауляйтер Общие вопросы Javascript 3 06.05.2009 09:23