konto usunięte
Temat: odliczanie czasu w js, czas z serwera.
Witam, przerobiłem trochę znaleziony w sieci skrypt do odliczania ile czasu pozostało do określonej daty. Obecnie czas odliczany jest na podstawie czasu ustawionego na komputerze użytkownika. Proszę o jakieś podpowiedzi aby czas był porównywany z czasem serwera. Nie chciałbym co sekundę sprawdzać czasu za pomocą ajaxa.
<script type="text/javascript">
function CD(d,o,t,x){return[x=~~(t=(d-o)/864e5),x=~~(t=(t-x)*24), x=~~(t=(t-x)*60),~~((t-x)*60)]}
function R(t){
t=CD(new Date(<?=$this->y?>,<?=$this->m?>,<?=$this->d?>,<?=$this->h?>,<?=$this->mi?>,<?=$this->s?>), new Date());
if(t[0] < 10 && t[0] >= 0 )
t[0]='0'+ t[0];
if(t[1] < 10 && t[1] >= 0)
t[1]='0'+ t[1];
if(t[2] < 10 && t[2] >= 0)
t[2]='0'+ t[2];
if(t[3] < 10 && t[3] >= 0)
t[3]='0'+ t[3];
document.getElementById('dni').innerHTML=t[0];
document.getElementById('godziny').innerHTML=t[1];
document.getElementById('minuty').innerHTML=t[2];
document.getElementById('sekundy').innerHTML=t[3];
if (t[3]<0)
{
document.getElementById('dni').innerHTML='00';
document.getElementById('godziny').innerHTML='00';
document.getElementById('minuty').innerHTML='00';
document.getElementById('sekundy').innerHTML='00';
}
else setTimeout('R()',1e3);
}
onload=function(){R();}
</script>
ja widzę 2 rozwiązania:
1. olać to, jest to tylko informacja dla użytkownika. Po upływie czasu nie ma możliwości zakupu przedmiotu. Przy wyświetlaniu oraz zakupie przedmiotów, po stronie serwera sprawdzane jest czy przedmiot jest nadal aktywny, na podstawie czasu z php.
2. Policzyć w php ile jeszcze sekund zostało miedzy końncem a datą teraźniejszą. Co sekundę odejmować od tej liczby 1. Potem sekundy zamienić na ilość dni, godzin, minut i sekund. Czy to jest możliwe, i byłoby dokładne?
Dodam jeszcze, że jeśli chodzi o moje umiejętności js, to jest bardzo słabo :) czasami przerobię jakiegoś gotowca.
Pozdrawiam i z góry dziękuję!