<p class="time">
<span class="day">{$detail[$team['id']]['left_day']}</span> д.,
<span class="hours">{$detail[$team['id']]['left_hour']}</span>:
<span class="minutes">{$detail[$team['id']]['left_minute']}</span>:
<span class="secundes">{$detail[$team['id']]['left_time']}</span>
</p>
Работают когда страницу обновляю.А как сделать чтобы просто работали?
Спустя 7 минут, 38 секунд (4.08.2011 - 17:18) kent666 написал(а):
)))
А ты как хотел. Тебе надо JS!!! Но часы будут тогда только дублировать время которое показывает часы компа, или AJAX - тогда будет показывать время твоего сервера
А ты как хотел. Тебе надо JS!!! Но часы будут тогда только дублировать время которое показывает часы компа, или AJAX - тогда будет показывать время твоего сервера
Спустя 33 минуты, 33 секунды (4.08.2011 - 17:52) Invis1ble написал(а):
d4a1
Цитата |
А как сделать чтобы просто работали? |
"Просто" это как?
Если без обновления - то кури в сторону JS.
Спустя 30 минут, 47 секунд (4.08.2011 - 18:22) killer8080 написал(а):
d4a1
В Js через setTimeout() или setInterval() вызывай функцию которая будет обновлять время.
тут справочник по объекту Date.
В Js через setTimeout() или setInterval() вызывай функцию которая будет обновлять время.
тут справочник по объекту Date.
Спустя 9 минут, 6 секунд (4.08.2011 - 18:31) d4a1 написал(а):
JS подключил.
В этом коде работает. Но здесь условие , если дней больше 0, то секунды не показывает.
Нехватает знаний. <_<
Как его прикрутить к этому, но чтоб выводило и дни и секунды. Без <ul> - в строку.
В этом коде работает. Но здесь условие , если дней больше 0, то секунды не показывает.
<!--{if $team['close_time']}-->
<div class="deal-box deal-timeleft deal-off" id="deal-timeleft{$tindex}" curtime="{$now}000" diff="{$detail[$team['id']]['diff_time']}000">
<div class="limitdate"><p class="deal-buy-ended">${date('Y-m-d', $team['close_time'])}<br>${date('H:i:s', $team['close_time'])}</p></div>
</div>
<!--{else}-->
<div class="deal-box deal-timeleft deal-on" id="deal-timeleft{$tindex}" curtime="{$now}000" diff="{$detail[$team['id']]['diff_time']}000">
<h3>ВРЕМЯ</h3>
<div class="limitdate"><ul id="counter{$tindex}">
<!--{if $detail[$team['id']]['left_day']>0}-->
<li><span>{$detail[$team['id']]['left_day']}</span>Дней</li><li><span>{$detail[$team['id']]['left_hour']}</span>Часов</li><li><span>{$detail[$team['id']]['left_minute']}</span>Минут</li>
<!--{else}-->
<li><span>{$detail[$team['id']]['left_hour']}</span>Часов</li><li><span>{$detail[$team['id']]['left_minute']}</span>Минут</li><li><span>{$detail[$team['id']]['left_time']}</span>Секунд</li>
<!--{/if}-->
</ul></div>
</div>
<!--{/if}-->
Нехватает знаний. <_<
Как его прикрутить к этому, но чтоб выводило и дни и секунды. Без <ul> - в строку.
<td class="time-container1">
<p class="time-h">ВРЕМЯ:</p>
<p class="time">
<span class="day">{$detail[$team['id']]['left_day']}</span> д.,
<span class="hours">{$detail[$team['id']]['left_hour']}</span>:
<span class="minutes">{$detail[$team['id']]['left_minute']}</span>:
<span class="secundes">{$detail[$team['id']]['left_time']}</span>
</p>
</td>
Спустя 5 минут, 49 секунд (4.08.2011 - 18:37) Invis1ble написал(а):
Это где здесь интересно JS ?
Спустя 1 минута, 35 секунд (4.08.2011 - 18:39) d4a1 написал(а):
в этом куске JS нет, но он подключен. Всё работает в первом куске кода
Спустя 15 минут, 10 секунд (4.08.2011 - 18:54) killer8080 написал(а):
<td class="time-container1">
<p class="time-h">ВРЕМЯ:</p>
<p class="time">
<span id="day" class="day"></span> д.,
<span id="hours" class="hours"></span>:
<span id="minutes" class="minutes"></span>:
<span id="seconds" class="secundes"></span>
</p>
</td>
<script type="text/javascript">
<!--
setInterval(
function(){
var date = new Date();
document.getElementById("day").innerHTML = date.getDate();
document.getElementById("hours").innerHTML = date.getHours();
document.getElementById("minutes").innerHTML = date.getMinutes();
document.getElementById("seconds").innerHTML = date.getSeconds();
},
1000
);
//-->
</script>
Спустя 3 минуты, 15 секунд (4.08.2011 - 18:57) d4a1 написал(а):
killer8080
Большое спасибо.
Большое спасибо.

Спустя 48 секунд (4.08.2011 - 18:58) killer8080 написал(а):
d4a1
да не за что
да не за что

Спустя 4 минуты, 12 секунд (4.08.2011 - 19:02) d4a1 написал(а):
Это совсем не то, что надо
извините
Это текущее время компа.
А надо второй скрипт , чтоб работал как первый, но показывал и дни и секунды

Это текущее время компа.
А надо второй скрипт , чтоб работал как первый, но показывал и дни и секунды
Спустя 4 минуты, 36 секунд (4.08.2011 - 19:07) killer8080 написал(а):
Цитата (d4a1 @ 4.08.2011 - 19:02) |
А надо второй скрипт , чтоб работал как первый, но показывал и дни и секунды |
А вот второй вариант категорически не советую! Представь какой шторм запросов будет идти на сервер от всех юзеров, открывших страницу. Перенапрягать сервак, ради чего?
Спустя 9 минут, 25 секунд (4.08.2011 - 19:16) d4a1 написал(а):
У меня других вариантов нет. Пусть будет как есть.
Вот этот скрипт всё ОК показывает если страницу обновлять. Если знаете, подскажите как лучше это сделать ?
Вот этот скрипт всё ОК показывает если страницу обновлять. Если знаете, подскажите как лучше это сделать ?
<td class="time-container1">
<p class="time-h">ВРЕМЯ:</p>
<p class="time">
<span class="day">{$detail[$team['id']]['left_day']}</span> д.,
<span class="hours">{$detail[$team['id']]['left_hour']}</span>:
<span class="minutes">{$detail[$team['id']]['left_minute']}</span>:
<span class="secundes">{$detail[$team['id']]['left_time']}</span>
</p>
</td>
Спустя 5 минут, 25 секунд (4.08.2011 - 19:22) killer8080 написал(а):
d4a1
А что за время он там показывает? Похоже что там не время сервера, а данные полученные из БД?
А что за время он там показывает? Похоже что там не время сервера, а данные полученные из БД?
Спустя 2 минуты, 32 секунды (4.08.2011 - 19:24) d4a1 написал(а):
да из бд. и в обратном отсчёте
Спустя 11 минут, 5 секунд (4.08.2011 - 19:35) killer8080 написал(а):
тогда нужен совсем другой подход. Например так
1 от сервера получаем время окончания периода,
2 вычитаем из текущего времени, получаем сколько времни осталось до завершения.
3 вычисляем оставшиеся дни, часы, минуты и секунды
1 от сервера получаем время окончания периода,
2 вычитаем из текущего времени, получаем сколько времни осталось до завершения.
3 вычисляем оставшиеся дни, часы, минуты и секунды
Спустя 17 минут, 22 секунды (4.08.2011 - 19:53) d4a1 написал(а):
да. но всё уже высчитано.
в первом скрипте всё работает.
а надо, чтоб работало во втором.
в первом скрипте всё работает.
а надо, чтоб работало во втором.
Спустя 26 минут, 40 секунд (4.08.2011 - 20:19) killer8080 написал(а):
Цитата (d4a1 @ 4.08.2011 - 19:53) |
да. но всё уже высчитано. |
придётся пересчитывать
<td class="time-container1">
<p class="time-h">ВРЕМЯ:</p>
<p class="time">
<span id="day" class="day"></span> д.,
<span id="hours" class="hours"></span>:
<span id="minutes" class="minutes"></span>:
<span id="seconds" class="secundes"></span>
</p>
</td>
<?php
$x_time = $detail[$team['id']]['left_day'] * 86400 +
$detail[$team['id']]['left_hour'] * 3600 +
$detail[$team['id']]['left_minute'] * 60 +
$detail[$team['id']]['left_time'] + time();
?>
<script type="text/javascript">
<!--
var countDownClock = setInterval(
function(){
var xTime = <?php echo $x_time; ?>,
diff = xTime - parseInt(new Date().getTime() / 1000),
hours, minutes, seconds;
if(diff > 0){
day = Math.floor(diff / 86400);
hours = Math.floor(diff / 3600) % 24;
minutes = Math.floor(diff / 60) % 60;
seconds = diff % 60;
}
else{
hours = minutes = seconds = 0;
clearInterval(countDownClock);
}
document.getElementById("day").innerHTML = day;
document.getElementById("hours").innerHTML = hours;
document.getElementById("minutes").innerHTML = minutes;
document.getElementById("seconds").innerHTML = seconds;
},
1000
);
//-->
</script>
Спустя 25 минут, 24 секунды (4.08.2011 - 20:45) d4a1 написал(а):
killer8080
Благодарю. Работает.
Можно сделать , чтобы обновлять одни секунды, а то дёргает.
Благодарю. Работает.
Можно сделать , чтобы обновлять одни секунды, а то дёргает.
Спустя 5 минут, 42 секунды (4.08.2011 - 20:50) killer8080 написал(а):
Цитата (d4a1 @ 4.08.2011 - 20:45) |
Можно сделать , чтобы обновлять одни секунды, а то дёргает. |
У меня норм. Какой браузер и конфигурация железа (проц, память)?
Спустя 2 минуты, 57 секунд (4.08.2011 - 20:53) d4a1 написал(а):
firefox
с железом ок. оперативка 4.
с железом ок. оперативка 4.
Спустя 10 минут, 25 секунд (4.08.2011 - 21:04) killer8080 написал(а):
странно :blink:
у меня без тормозов и в ФФ3 и в опере, ну можно конечно наворотить, но не уверен что это нужно
у меня без тормозов и в ФФ3 и в опере, ну можно конечно наворотить, но не уверен что это нужно
<td class="time-container1">
<p class="time-h">ВРЕМЯ:</p>
<p class="time">
<span id="day" class="day"></span> д.,
<span id="hours" class="hours"></span>:
<span id="minutes" class="minutes"></span>:
<span id="seconds" class="secundes"></span>
</p>
</td>
<?php
$x_time = $detail[$team['id']]['left_day'] * 86400 +
$detail[$team['id']]['left_hour'] * 3600 +
$detail[$team['id']]['left_minute'] * 60 +
$detail[$team['id']]['left_time'] + time();
?>
<script type="text/javascript">
<!--
var countDownClock = setInterval(
function(){
var xTime = <?php echo $x_time; ?>,
diff = xTime - parseInt(new Date().getTime() / 1000),
hours, minutes, seconds;
if(diff > 0){
day = Math.floor(diff / 86400);
hours = Math.floor(diff / 3600) % 24;
minutes = Math.floor(diff / 60) % 60;
seconds = diff % 60;
}
else{
hours = minutes = seconds = 0;
clearInterval(countDownClock);
}
if(document.getElementById("day").innerHTML != day.toString())
document.getElementById("day").innerHTML = day;
if(document.getElementById("hours").innerHTML != hours.toString())
document.getElementById("hours").innerHTML = hours;
if(document.getElementById("minutes").innerHTML != minutes.toString())
document.getElementById("minutes").innerHTML = minutes;
if(document.getElementById("seconds").innerHTML != seconds.toString())
document.getElementById("seconds").innerHTML = seconds;
},
1000
);
//-->
</script>
Спустя 5 минут, 21 секунда (4.08.2011 - 21:09) d4a1 написал(а):
killer8080
Благодарю ещё раз.
Дальше думаю разберусь.
Благодарю ещё раз.
Дальше думаю разберусь.

Спустя 26 минут, 15 секунд (4.08.2011 - 21:35) killer8080 написал(а):
d4a1
не за что, учи JS
не за что, учи JS

Спустя 2 часа, 44 минуты, 26 секунд (5.08.2011 - 00:20) YVSIK написал(а):
вот подобное;; время берется с самого ПК ползователя
с начало вроде читал потом надоело и вспомнил где я это видел; приведу
только полный код и он не мой ; если надо подскажу источник
думаю видно что это чистый ява скрипт ))
может на что сгодится !))
B)
в источнике есть даже часы со стрелками :ph34r:
с начало вроде читал потом надоело и вспомнил где я это видел; приведу
только полный код и он не мой ; если надо подскажу источник
думаю видно что это чистый ява скрипт ))
может на что сгодится !))
B)
Свернутый текст
<!--Запускаем часы-->
<BODY onload=runclock()>
<!--Устанавливаем позицию часов-->
<SPAN id=liveclock style="LEFT: 5px; POSITION: absolute; TOP: 5px"></SPAN>
<!--Программа часов-->
<script language=JavaScript>
<!--
function runclock(){
if (!document.layers&&!document.all)
return
var Digital=new Date()
var hours=Digital.getHours()
var minutes=Digital.getMinutes()
var seconds=Digital.getSeconds()
var dn="AM"
if (hours>24){
dn="PM"
hours=hours-24
}
if (hours==0)
hours=24
if (minutes<=9)
minutes="0"+minutes
if (seconds<=9)
seconds="0"+seconds
myclock="<font size='2' color='darkgreen' face='Verdana, Tahoma'><b>Текущее время: "+hours+":"+minutes+":"+seconds+" "+dn+"</b></font>"
if (document.layers){
document.layers.liveclock.document.write(myclock)
document.layers.liveclock.document.close()
}
else if (document.all)
liveclock.innerHTML=myclock
setTimeout("runclock()",1000)
}
//-->
</SCRIPT>
в источнике есть даже часы со стрелками :ph34r:
Спустя 9 часов, 12 минут, 41 секунда (5.08.2011 - 09:32) killer8080 написал(а):
d4a1
извиняй ошибочка вышла :) Тот код не правильный. Нельзя привязываться к текущему времени, т.к. у клиента и сервера часы могут идти по разному. Нужно просто вести обратный отсчёт. Вот исправил
PS кстати подправил чтоб время всегда отображалось двухзначными числами ;)
извиняй ошибочка вышла :) Тот код не правильный. Нельзя привязываться к текущему времени, т.к. у клиента и сервера часы могут идти по разному. Нужно просто вести обратный отсчёт. Вот исправил
Свернутый текст
<td class="time-container1">
<p class="time-h">ВРЕМЯ:</p>
<p class="time">
<span id="day" class="day"></span> д.,
<span id="hours" class="hours"></span>:
<span id="minutes" class="minutes"></span>:
<span id="seconds" class="secundes"></span>
</p>
</td>
<?php
$x_time = $detail[$team['id']]['left_day'] * 86400 +
$detail[$team['id']]['left_hour'] * 3600 +
$detail[$team['id']]['left_minute'] * 60 +
$detail[$team['id']]['left_time'];
?>
<script type="text/javascript">
<!--
var remainTime = <?php echo $x_time; ?>;
var countDownClock = setInterval(
function(){
var day, hours, minutes, seconds;
if(remainTime > 0){
day = Math.floor(remainTime / 86400);
hours = Math.floor(remainTime / 3600) % 24;
minutes = Math.floor(remainTime / 60) % 60;
seconds = remainTime % 60;
remainTime--;
}
else{
day = hours = minutes = seconds = 0;
clearInterval(countDownClock);
}
hours = hours < 10 ? '0' + hours : hours;
minutes = minutes < 10 ? '0' + minutes : minutes;
seconds = seconds < 10 ? '0' + seconds : seconds;
if(document.getElementById("day").innerHTML != day.toString())
document.getElementById("day").innerHTML = day;
if(document.getElementById("hours").innerHTML != hours.toString())
document.getElementById("hours").innerHTML = hours;
if(document.getElementById("minutes").innerHTML != minutes.toString())
document.getElementById("minutes").innerHTML = minutes;
if(document.getElementById("seconds").innerHTML != seconds.toString())
document.getElementById("seconds").innerHTML = seconds;
},
1000
);
//-->
</script>
PS кстати подправил чтоб время всегда отображалось двухзначными числами ;)