Autor Zpráva
Venom
Profil *
nevite nekdo jak udelat digitalni hodiny v php aby se menily (samy od sebe ne jen kdyz refreshnu stranku)?
Leo
Profil
V PHP nijak. Potrebujete nejaky skript na strane klienta - idealne JavaScript, Leo
24k
Profil *
bo LeoSkript, to je takovej domaci otrok co Vam je bude pocitat na papire :)
FantomX1
Profil
Najlepsi sposob je vypocitat si casovy rozdiel medzi casom na serveri a na strane klienta v javascripte a potom ten vzdy pricitavat k casu na pc ktory sa da ziskat jednoducho, myslim ze v javascripte je to ako var h=date.getHour();, tak nedochadza k omeskavaniu, alebo len k velmi malemu, ale nestupnuje sa.
Peca
Profil
FantomX1
Co je to za nesmysl? JavaScript snad dává naprosto přesný čas, jaký je u klienta. Ještě jsem nezažil server, ne kterém by šly hodiny aspoň přibližně přesně. Určitě tam nebude ani letní čas.
tiso
Profil
Peca
...by si sa divil... Na servery máme synchronizáciu, na kompoch nie... Hádaj ktorý čas je presnejší?
Charlie
Profil
Venom
Z předešlých příspěvků jsi zjistil, že je nemožné udělat přesné hodiny v okně prohlížeče. Buď se spolehneš na počítač klienta, který může (ale nemusí) mít čas nastavený plus minus správně, nebo pošleš čas ze serveru do JavaScriptu, který zobrazí sice teoreticky přesnější čas, ale musíš počítat s odezvou, kterou způsobí odeslání/přijetí požadavku do prohlížeče klienta.

To znamená, že hodiny v okně prohlížeče jsou absolutní zbytečnost - nemohou ukazovat správný čas a šance, že by je někdo někdy využil je mizivá.
FantomX1
Profil
Charlie:
Nemozem suhlasit, my mame take hodiny na www.xatchat.sk, a pouzivame ich bez problemov, i ked momentalne maju maly bug.
peki
Profil
a co tak flash ... alebo odniekadial ukradni JS kod ;-)
prochazka.zde.cz
Profil *
ma li nekzo zajam, tam mam doma aplet pro js. at me napise a ja mu to emailem poslu. Aplet umi i scroling texru...
Leo
Profil
Jediny problem, ktery tady kdo zmimoval, je korekce o dobu prenosu ze serveru do klienta, a tu musi resit jakakoliv technologie na strane klienta, at uz je to JS, Flash, nebo java aplet. Otazka je, jestli sekunda hraje pro puvodniho tazatele roli... Leo
noem
Profil
naco zase hodinky..vsak ich ma skoro kazdy vpravo dole...
FantomX1
Profil
Leo:

To je tiez pravda, neviem ako sa da riesit latencia stahovania stranky, mozno o nieco navysit cas serveru

Noem:

V kazdom pripade opodstatnenie to ma, dnes som to vyuzil ked som sa ponahlal do mesta a potreboval som rychlo zistit cas, jednoducho som si otvoril nasu stranku. Cas na serveri je vacsinou presnejsi ako cas na PC
Leo
Profil
"neviem ako sa da riesit latencia stahovania stranky, mozno o nieco navysit cas serveru"

Vite kdy odesel pozadavek, vite kdy prisla odpoved, tak odecist dobu zpracovani na serveru a podelit dvema, a mate dobry odhad. Predpokladam, ze vas JavaScript nebude ridit hodiny satelitu GPS, a co se tyka presnosti clovek by mel vedet kdy prestat :-)Leo
creck
Profil
zkus ... http://www.clocklink.com/
FantomX1
Profil
Leo:

Dik, skvely napad. I ked aj toto je uz trosku komfort, vacsinou na jednej ci dvoch sekundach az tak nezalezi.
Milan Uhrák
Profil *
Zdravím, dovolte, abych si přihodil svou trošku. Na tomto webu je hezký ukázkový skriptík, tak do strákny vložit přesný lokální čas (čas uživatelova PC) . Pomocí PHP jsem jej rozšířil tak, že zobrazuje +- přesný čas serveru. Jediná potíž by snad byla, pokud by se návštěvník stránek nacházel v jiném časovém pásmu. To jsem zatím neřešil.

<?
setlocale(LC_TIME,"cs_CZ");
?>
<body>
<center>
Dnes je : <br />

<?
echo strftime("%d.%B.%Y")."\n<br />";
echo "<span id=\"time\">".date("H : i : s");
?>
</span>
<script language="JavaScript">
function naplnCas (datum){
datum.setTime(datum.getTime()+1000); // prave aktualni cas
hodina = datum.getHours();
minuta = datum.getMinutes();
sekund = datum.getSeconds();

if (hodina+minuta+sekund == 0) {window.location.reload(true)} //o pulnoci obnovit data ze serveru

if (hodina < 10) {hodina = "0"+hodina.toString();}
if (minuta < 10) {minuta = "0"+minuta.toString();}
if (sekund < 10) {sekund = "0"+sekund.toString();}

aktualniCas = hodina + " : " + minuta + " : " + sekund;
// vybral jsem z data, co potrebuju a obalil znamenky, aby se to prevedlo na retezec
window.document.getElementById("time").innerHTML = aktualniCas;
// vypocitana hodnota se vklada jako html dovnitr elemnetu, ktery ma id "cas"
}
//dostali jsme čas ze serveru ... co časové pásma ?


celedatum = new Date();
celedatum.setTime(<?echo date("U")*1000?>);

window.setInterval("naplnCas(celedatum)", 1000); //pravidelna zmena, 1000 je sekunda

</script>


Milan
Toto téma je uzamčeno. Odpověď nelze zaslat.

0