Autor | Zpráva | ||
---|---|---|---|
Martin02 Profil |
#1 · Zasláno: 14. 2. 2011, 11:14:44
Ahoj,
potřeboval bych poradit. V javascriptu jsem si udělal datum a čas s tim, že se bude aktualizovat každejch 500 ms, takže budou sekundy normálně běžet. Ovšem je to javascript a čas se určuje podle počítače. Kamarád mi řikal, že jestli chci správnej čas vždycky (aby to nezáleželo na počítači), tak mam nějak navázat spojení s nějakym serverem a čas bude běžet podle tohoto serveru. Také, že prej to bude muset být v php. Mohl by mi někdo prosím poradit jak na to? předem mockrát děkuji za odpověď |
||
Segi_L Profil |
#2 · Zasláno: 14. 2. 2011, 16:04:06
get_time.php - jeho kód
<?PHP list($usec, $sec) = explode(" ",microtime()); echo ((int)(((float)$usec + (float)$sec)*1000)); return; ?> Javascript funkce vracející počet ms na serveru na ktorom je uložený get_time.php Tento príklad predpokladá jQuery <script type="text/javascript" language="JavaScript"> <!-- function get_time_from_server(){ //v ajaxu pridaný parametr anti_cache aby nebral cache. var now = new Date(); $.ajax ( { type: "GET", url: 'get_time.php?anti_cache='+now.getTime(), success: function(html) { return html; } } ); } //--> </script> |
||
Davex Profil |
#3 · Zasláno: 14. 2. 2011, 18:21:31
Martin02:
Ty snad nemáš v operačním systému na liště přesný čas, že kvůli tomu musíš programovat stránku v JavaScriptu? Každopádně se stačí zeptat serveru na přesný čas jen jednou. Nemusíš ho otravovat každou chvíli. |
||
Bubák Profil |
#4 · Zasláno: 14. 2. 2011, 19:48:58
Martin02:
„V javascriptu jsem si udělal datum a čas“ To k něčemu potřebuješ, nebo děláš stránku metodou už umím vložit skript, tak na stránku nějaké plácnu, ať ji nemám prázdnou. Na spoustě webhostingů jsou ujetější hodiny, než máš v počítači, takže na PHP bych se nespoléhal. Koukni na http://www.presnycas.cz/ vyžaduje Javu, ale i bez ní si přečteš, oč běží. Taky si můžeš přečíst http://cs.wikipedia.org/wiki/Network_Time_Protocol |
||
Chamurappi Profil |
#5 · Zasláno: 14. 2. 2011, 19:55:57
Reaguji na Segiho_L:
Hloupé. Stačí natáhnout jeden externí <script> , AJAX ani jQuery nepotřebuje.
Reaguji na Bubáka: „Na spoustě webhostingů jsou ujetější hodiny, než máš v počítači“ Mohl by využít externí službu (i když nevím, jak moc je stabilní a spolehlivá). |
||
Segi_L Profil |
#6 · Zasláno: 14. 2. 2011, 21:58:26
Chamurappi:
„Stačí natáhnout jeden externí <script>" To by som musel ale vedieť aký. |
||
Chamurappi Profil |
#7 · Zasláno: 15. 2. 2011, 01:25:55
Reaguji na Segiho_L:
Skript generující volání JS funkce s argumentem obsahujícím to, co vrací ten tvůj get_time.php . (Nemusí vůbec využívat tu službu, kterou jsem zmínil.)
|
||
Darker Profil |
#8 · Zasláno: 15. 2. 2011, 08:27:23
Já to dělám takhle.
<script type="text/javascript"> var time={h:<?php echo Date("G")?>, m:<?php echo 1*((int)Date("i"))?>, s:<?php echo 1*((int)Date("s"))?>}; setInterval("time.s++;if(time.s==60){time.m++;time.s=00;if(time.m==60){time.m=0;time.h++}}",1000); </script> |
||
_es Profil |
#9 · Zasláno: 15. 2. 2011, 08:58:21 · Upravil/a: _es
Darker:
„Já to dělám takhle.“ Tak to robíš zle, časovač nemusí byť spustený presne každú sekundu a bude nastávať oneskorenie, v niektorých prehliadačoch a pri nejakom vyššom zaťažení prehliadača aj veľké. Treba pracovať s časom v počítači návštevníka a rozdielom medzi jeho časom a časom servera. |
||
Časová prodleva: 7 dní
|
|||
Darker Profil |
#10 · Zasláno: 22. 2. 2011, 15:08:30 · Upravil/a: Darker
_es:
Pravda, to dělám špatně. Opravím si to, měl jsem si to uvědomit. Skript se původně pojil rovnou s hodinkami, které se aktivně každou sekundu měnily. |
||
Časová prodleva: 13 let
|
0