Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [js+php] odliczanie, strefy czasowe i odświeżanie
komanch
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 17.08.2006

Ostrzeżenie: (0%)
-----


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>


Ten post edytował komanch 21.08.2006, 19:06:34
Go to the top of the page
+Quote Post
Szakal
post
Post #2





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 27.05.2004
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


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...


--------------------
Pozdrawiam
(o) Igor Dirbach
Go to the top of the page
+Quote Post
komanch
post
Post #3





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 17.08.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Szakal
post
Post #4





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 27.05.2004
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


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...


--------------------
Pozdrawiam
(o) Igor Dirbach
Go to the top of the page
+Quote Post
komanch
post
Post #5





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 17.08.2006

Ostrzeżenie: (0%)
-----


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

Ten post edytował komanch 22.08.2006, 18:59:47
Go to the top of the page
+Quote Post
My4tic
post
Post #6





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 4.08.2005

Ostrzeżenie: (0%)
-----


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);


--------------------
Załóż konto na dropbox.
Go to the top of the page
+Quote Post
komanch
post
Post #7





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 17.08.2006

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 14:47