Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js+php] odliczanie, strefy czasowe i odświeżanie
Forum PHP.pl > Forum > Przedszkole
komanch
Witam wszystkich
mam taki skrypcik, pokazuje on ile zostało czasu do momentu kiedy mają zatelefonować do mnie osoby z różnych stron świata. Jak teraz wybrnąć z różnicy czasu w zależności od strefy czasowej w jakiej dana osoba będzie ten licznik widziała?
Czy ktoś mi podpowie, co zrobić aby licznik doszedł do zera dla każdej strefy czasowej w tym samym momencie?

A może jest jakaś "wstawka", która pozwoli otrzymać czas z serwera, a nie z systemu operacyjnego użytkownika?

Kod
<html>

<p align="center"><font face="Verdana">Dzwoncie za:</font></p>

<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(2006,07,30,12,59,59),new Date());
document.getElementById('costam').innerHTML=''+t[0]+"days "+t[1]+"hours "+t[2]+"min "+t[3]+"sec";
if(t[0]<=0 && t[1]<=0 && t[2]<=0 && t[3]<=0)

document.getElementById('costam').innerHTML='Teraz dzwoncie!';
else
setTimeout('R()',1e3);
}
onload=function(){R();
}
</script>
<p align="center"><font face="verdana" id=costam></font></p>
<body text="#C0C0C0" bgcolor="#000000">

<div id="costam"></div>
Szakal
ale nierozumiem problemu... smile.gif to jest Java script... jak sama nazwa mówi to działa ona "po stronie przeglądarki" czyli skrypt będzie odliczał czas wg czasu jaki ma na zagarku w kompie dana osoba oglądająca stronę... nawet jeżeli gość jest z Kairu to strefe czasowom ma +2 czyli unas jest np. 16:00 a uniego będzie 18:00... gorzej gdyby to było po stronie serwa (php) to wtedy musiał byś pobrać strefę czasowom serwera z jakiego odwiedza ktoś stronę i dodać ją do aktualnej godziny... ale tak to raczej niema żadnego problemu (chyba oto chodzi, jeżeli źle myślę to wyprowadź mnie z błędu) winksmiley.jpg

Pozdrawiam, Igor...
komanch
Postaram się to jakoś wytłumaczyć. Przypuscmy, że interesującą mnie godziną (godz. X) jest godz. 13.00 czasu polskiego. Jeśli teraz stronę ze skryptem otworzy ktoś z Polski o godz. 12.45 - licznik pokaże, że pozostało 15 minut do godziny X. Jeśli w tym samym momencie (czyli o godz. 12.45 czasu polskiego) stronę otworzy ktoś z Londynu, licznik pokaże mu, że pozostała 1godz. i 15 minut do godz. X
Chodzi mi o to aby w każdym miejscu na świecie, licznik w tym samym momencie pokazywał tą samą wartość.

Dzięki.
Szakal
no niestety tak łatwo zrobić się tego nieda... (w js jest to niemożliwe byś musiał połączyc to z php)
jeżeli Cie to interesuje to napisz napisze ci skrypt...
komanch
Cytat(Szakal @ 20.08.2006, 22:33 ) *
no niestety tak łatwo zrobić się tego nieda... (w js jest to niemożliwe byś musiał połączyc to z php)
jeżeli Cie to interesuje to napisz napisze ci skrypt...

Jestem jak najbardziej zainteresowany, ktoś mi coś nawet już poradził, wstawiłem więc taką linie:
Kod
t=CD(new Date(<? echo (gmdate ("U", mktime (0,0,0,8,25,2006)))*1000; ?>),new Date());

uruchomiłem, ale nadal licznik pokazuje różne wartości dla różnych stref czasowych.


Dzięki za pomoc.

Ok, doszedłem już do takiego stanu:
Kod
<html>

<p align="center"><font face="Verdana">Deadline for commitment in New Haven:</font></p>

<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(<? echo (gmdate ("U", mktime (0,0,0,8,25,2006)))*1000; ?>),new Date(<? echo (gmdate ("U"))*1000; ?>));
document.getElementById('costam').innerHTML=''+t[0]+"days "+t[1]+"hours "+t[2]+"min "+t[3]+"sec";
if(t[0]<=0 && t[1]<=0 && t[2]<=0 && t[3]<=0)

document.getElementById('costam').innerHTML='Time is up !';
else
setTimeout('R()',1e3);
}
onload=function(){R();
}
</script>
<p align="center"><font face="verdana" id=costam></font></p>
<body text="#C0C0C0" bgcolor="#000000">

<div id="costam"></div>


To już prawie działa smile.gif tzn jest tak, że odliczanie pokazuje poprawnie, tylko nie odswieza sie automatycznie.
Tutaj przykład:
http://www.robus.ovh.org/deadline/t1.php



Co zrobić żeby to się odświeżało?

sad.gif sad.gif sad.gif
My4tic
Szukaj pod hasłami timer/countdown

http://www.hashemian.com/tools/javascript-countdown.htm
http://www.dynamicdrive.com/dynamicindex6/...alcountdown.htm

Po prostu musisz w JS napisac funkcje ktora bedzie uruchamiała sie co sekunde i odejmowala 1s od podanego czasu.

Kod
Timeout('nazwa_funkcji', 1000);
komanch
Cytat(My4tic @ 22.08.2006, 20:22 ) *


Bardzo Ci dziękuję, to jest dokładnie to co potrzebowałem, odliczanie bez względu na strefe czasową i z autoodświeżaniem
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.