Autor Zpráva
Halluz-man
Profil *
Chtel bych abych mel na webu samostatny cas nezavisle na tom jaky je v pocitaci.
Hledal sem kde se dalo, ale nic sem nenasel. Nevite jestli to vubec jde? :)
Alphard
Profil
javascriptem těžko, v PHP bez problémů
http://cz2.php.net/manual/cs/function.date.php

ale bude statický
v javascriptu by se musel využít třeba AJAX a stahovat čas z nějakého serveru, kde je k dispozici

a ještě je otázka ke zvážení, jestli to má smysl
já např. vidím na hodiny, budík, hodinky (mám je skoro pořád) a mám přesný čas na počítači (automaticky se aktualizuje, má to tak většina lidí), když mě bude zajímat, kolik je hodin, nebudu to hledat na nějakých stránkách
Halluz-man
Profil *
je to dlouhy jak cernochuv penis ale diki ;)
Joker
Profil
Alphard
ale bude statický
Nemusí být. Stačí v PHP předat Javascriptu nějaký počáteční čas a potom ho Javascriptem udělat dynamický.
Halluz-man
Profil *
Mohli byste vypsat tu cast kde se o tom pise? V Php se moc nevyznam a anglictina taky neni nejlepsi.
Alphard
Profil
Joker
jo, to mě taky napadlo, ale
1. nebude to jednoduché (setInterval AFAIK není dostačně přesný, při opakovaném přičítání 1 sekundy bude čas zanedlouho špatný a i kdyby ne, bude se s tím muset pracovat jako s čísly, tj. přepočet sekundy, minuty, hodiny)
2. při načítání stránky vznikne prodleva

Halluz-man
potřebuješ plynulou změnu?
fandaa
Profil
Halluz-man
Mohli byste vypsat tu cast kde se o tom pise? V Php se moc nevyznam a anglictina taky neni nejlepsi.
Zvlástní, ale http://cz2.php.net/manual/cs/function.date.php je v češtině.
Halluz-man
Profil *
Alphard
No jasne :)

fandaa
Nikde nevidim, ze by bylo neco o delani vlasniho casu v cestine.
Joker
Profil
Alphard
To je pravda, ale:
ad 1. skoro určitě by se to zpožďovalo, ale ještě by šlo na začátku spočítat rozdíl mezi tím "vzdáleným" a "místním" časem a potom synchronizovat podle "místního" času.
ad 2. to jo, no. Ovšem je otázka, nakolik to bude vadit. Při většině použití nebude pár sekund rozdílu hrát roli.
Ještě by šlo ten čas pravidelně synchronizovat přes AJAX :-)
Alphard
Profil
[i]Ještě by šlo ten čas pravidelně synchronizovat přes AJAX :-)[i]
to jsem psal :-)

ad1. to bylo řešení, ale také ne jednoduché

připomenul bych otázku smyslu dávání času na web, IMHO je to zbytečné
los
Profil *
1. setInterval je dostatočne presný.
2. áno, vznikne oneskorenie.

Aktualizovať cez Ajax je zbytočné, pretože to oneskorenie bude aj tam. Najlepšie (hneď po možnosti nedávať čas na web vôbec) je na začiatku si zapamätať časový rozdiel medzi klientom a serverom a po každej sekunde pomocou setInterval aktualizovať.
Halluz-man
Profil *
Tak to na to kaslu :) Je to nejak az moc obtizne
peta
Profil
Halluz-man
jakpsatweb - javascript - datum a cas
jakpsatweb - javascript - priklady - datum a cas
Akorat musis dostat spravne casove razitko pres PHP (protoze JS datum, pokud pouzijes aktualni, ten se bere z toho, co ma nastaven uzivatel a tim bych si hodinky rozhodne neserizoval :) )
cz.php.net/date
dole jsou ruzne priklady. Pokud umis spustit PHP nebo mas server, ktery PHP podporuje, pak si zkus, co ktery priklad dela.
A druhy problemek, bylo by mozna dobre, pokud se stranka neobnovuje, cas od casu (5 minut?) si datum obnovit pres JS ajax / PHP, abys mel vzdy spravny cas, protoze plynuti casu pres JS je zavisle na www prohlizeci. Pokud je prohlizec zatizen, muze dojit k casovym odchylkam.

jinak
google.com date javascript php examples
Pokud ti je anglictina cizi, pak to mas hold tezky jako programator.
Bubák
Profil
protoze JS datum, pokud pouzijes aktualni, ten se bere z toho, co ma nastaven uzivatel a tim bych si hodinky rozhodne neserizoval :)
Čas v PC se nastavuje ve win 1× týdně automaticky, takže pokud nemáš rozhašené nastavení, a pochybnou základní desku, je na to celkem spoleh. Nevím, jak často ce nastavuje čas v Linuxu, u některých distribucí jsem měl dojem, že vždy při startu. Dokonce mám větší obavu o přesnost času na běžném serveru.

A druhy problemek, bylo by mozna dobre, pokud se stranka neobnovuje, cas od casu (5 minut?) si datum obnovit pres JS ajax / PHP, abys mel vzdy spravny cas, protoze plynuti casu pres JS je zavisle na www prohlizeci.
Už tady bylo zmíněno, že nechat běžet hodiny pomocí setInterval není přesné. Ale na pouhém zobrazení času, získaného pomocí rozdílu časů na servru a v PC, pomocí funkce setInterval nevidím nic špatného, pokud stačí přesnost +/- nekolik sekund.
los
Profil *
Dá sa uvažovať, že časový rozdiel medzi časom klienta a časom servera je stále rovnaký. Funkcia setInterval slúži iba na obnovovanie textu (nie na pričítanie sekúnd), takže jej presnosť nie je dôležitá. Neviem, v čom je problém. Používať na synchronizáciu Ajax je naozaj zbytočné.

Celé by to vyzeralo zhruba takto (netestované, takže tam môžu byť nejaké chyby):
var offset = new Date() - new Date(.../*cas zo servera*/);
var dateEl = document.getElementById(.../*element s casom*/);
var pad = function(x) { return (x < 10 ? "0" : "") + x; }

setInterval(function() {
if (dateEl) {
var date = new Date();
date.setTime(date.getTime() - offset);
dateEl.innerHTML = pad(date.getHours()) + ":" + pad(date.getMinutes()) + ":" + pad(date.getSeconds());
}
}, 1000);
Joker
Profil
Alphard
ad1. to bylo řešení, ale také ne jednoduché
Nemyslím si, že by to bylo složité...
<script type="text/javascript">
var start = <?php echo($start); ?>;
var cas = new Date();
var rozdil = cas.getTime() - start;

function aktualizuj(){
var lokalni = new Date();
var t = new Date(lokalni.getTime()+rozdil);
// naformátovat hodnoty z t, hodit do příslušného prvku a je to.
}

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: