Autor | Zpráva | ||
---|---|---|---|
CZghost Profil * |
#1 · Zasláno: 25. 10. 2011, 17:27:48
Dělám stránky o Q3 a chtěl bych vypsat aktuální datum a čas, ale tak, aby se měnily hodiny, minuty a sekundy v reálném čase.
|
||
Sir Tom Profil |
#2 · Zasláno: 25. 10. 2011, 17:32:34
CZghost:
V reálném čase to nejde - PHP je serverový jazyk - tzn. nejdřív úlohy na serveru a k uživatelovi pošle výsledek. Tvůj požadavek umí vyřešit JavaScript. |
||
CZghost Profil * |
#3 · Zasláno: 26. 10. 2011, 10:48:30
Děkuji za odpověď, čas jsem udělal dynamický, datum je pomocí PHP.
|
||
CZghost Profil * |
#4 · Zasláno: 26. 10. 2011, 11:08:15
Bude fungovat tento zápis data?
<?php $ENDays=Array( "Mon"=>"Monday", "Tue"=>"Tuesday", "Wed"=>"Wednesday", "Thu"=>"Thursday", "Fri"=>"Friday", "Sat"=>"Saturday", "Sun"=>"Sunday" ); $ENMonth=Array( "Jan"=>"January", "Feb"=>"February", "Mar"=>"March", "Apr"=>"April", "May"=>"May", "Jun"=>"June", "Jul"=>"July", "Aug"=>"August", "Sep"=>"September", "Oct"=>"October", "Nov"=>"November", "Dec"=>"December" ); echo ($ENDays[Date("D")]," ",Date("j")); if(Date("j")==1) { echo("<sup>st</sup>") } elseif(Date("j")==21) { echo("<sup>st</sup>") } elseif(Date("j")==31) { echo("<sup>st</sup>") } elseif(Date("j")==2) { echo("<sup>nd</sup>") } elseif(Date("j")==22) { echo("<sup>nd</sup>") } elseif(Date("j")==3) { echo("<sup>rd</sup>") } elseif(Date("j")==23) { echo("<sup>rd</sup>") } else { echo("<sup>th</sup>") }; echo(" ",$ENMonth[Date("M")]," ",Date("Y")); ?> |
||
okolojdouci Profil * |
#5 · Zasláno: 26. 10. 2011, 11:11:58
CZghost:
„Bude fungovat tento zápis data?“ Co si představuješ pod slovem "fungovat"? Proč si to nevyzkoušíš? |
||
Joker Profil |
#6 · Zasláno: 26. 10. 2011, 11:50:30
CZghost:
„čas jsem udělal dynamický, datum je pomocí PHP.“ Proč? Čili o půlnoci to bude vypadat následovně? 26. října 23.58 26. října 23.59 26. října 00.00 26. října 00.01 Prostě PHP je na věci které se mají měnit při načtení stránky. Na věci které se mají měnit během zobrazení stránky je JavaScript. |
||
CZghost Profil * |
#7 · Zasláno: 26. 10. 2011, 12:21:17
Joker:
Co takhle Ajax? Spojení JavaScriptu s PHP? |
||
Joker Profil |
#8 · Zasláno: 26. 10. 2011, 12:22:50
Proboha, proč?
|
||
kajaman Profil |
#9 · Zasláno: 26. 10. 2011, 12:28:37 · Upravil/a: kajaman
řešení 1,
-necháš datum a čas vypsat JS řešení 2, -každou sekundu necháš JS zavolat server a zeptáš se, kolik je hodin -server ti odpoví a ty to necháš vypsat JS najdi 10 rozdílů :-) |
||
Joker Profil |
#10 · Zasláno: 26. 10. 2011, 12:57:39
kajaman:
„najdi 10 rozdílů :-)“ V zátěži serveru bude rozdíl dost radikální :-) |
||
CZghost Profil * |
#11 · Zasláno: 26. 10. 2011, 12:59:44
kajaman:
Já bych potřeboval i datum, kolikátého je... JavaScript se tedy postará o datum, PHP zase vypíše svátek ;-) |
||
jenikkozak Profil |
#12 · Zasláno: 26. 10. 2011, 13:24:47
CZghost:
„Dělám stránky o Q3“ „PHP zase vypíše svátek ;-)“ Q3, to myslíte auto? Co má auto společné se svátky? „Svátek má Erik, nezapomněli jste mu koupit auto?“ To vypadá divně. V tomto případě bych neřešil jak to udělat, ale proč to udělat. |
||
Ugo Profil |
#13 · Zasláno: 26. 10. 2011, 13:29:44
Správný řešení je skutečně v kombinaci protože javascript neumí zjistit správnej čas, na ten u uživatele se nedá spolehnout řešením teda je PHPkem předat hodnotu javascriptu, tma pustit vteřinovej interval a počítat když je minuta>60 minuta=00 atp... to je už lehký
|
||
Joker Profil |
#14 · Zasláno: 26. 10. 2011, 13:54:23
CZghost:
> Já bych potřeboval i datum, kolikátého je... > JavaScript se tedy postará o datum, PHP zase vypíše svátek ;-) Dotaz: To je účelem tam za každou cenu dostat nějaké PHP? Proč to nemůže prostě všechno udělat JavaScript? Jinak ale začínám mít neblahé tušení, že ten aktuální čas pro stránku samotnou nemá žádný smysl a jde jen o to, aby tam byl „měnící se“ čas (ideálně digitálním fontem, když už ne „hejbací“ ručičkové hodiny) a kdo má dnes svátek. Budiž, na mé úplně první stránce takové „kravinky“ taky byly, ale s odstupem je třeba si položit otázku: K čemu to je dobré? Ugo: „javascript neumí zjistit správnej čas“ JS vrací systémový čas na počítači uživatele. PHP vrací systémový čas na počítači serveru. Co je „správný čas“? Když čas na serveru nebude nastavený přesně anebo server bude v jiném časovém pásmu než já, bude z pohledu návštěvníka PHP čas „špatně“, zatímco JS čas „správně“. „řešením teda je PHPkem předat hodnotu javascriptu, tma pustit vteřinovej interval“ Ne, protože na přesnost časovače v JS se nedá tak spolehnout. Respektive se dá spolehnout na to, že se to poměrně rychle rozsynchronizuje (z mých zkušeností zhruba o sekundu za necelou minutu, závisí to ale i na prohlížeči). Řešením tohohle problému (dynamická aktualizace času jehož hodnota je řízená serverem) je na začátku zjistit rozdíl mezi serverovým a klientským časem a pak zobrazovat klientský čas upravený o ten rozdíl. |
||
Ugo Profil |
#15 · Zasláno: 26. 10. 2011, 14:19:19
Joker:
správným časem (špatně jsem dal čárku) mám na mysli čas na serveru, protože na ten u uživatele se nedá spolehnout, nad serverovým máš kontrolu a bude u všech stejný „Ne, protože na přesnost časovače v JS se nedá tak spolehnout.“ to je pravda, ovšem při každém refreshi se načte čas PHPkem takže se srovná a rozdíl je tudíž neznatelnej ... btw. jak jinak se to řeší když to chceš celý přes JS? (jaká existuje spolehlivější metoda intervalu) Celý JS bych to rozhodně neřešil, jedinej moment kdy mě zajímá čas na internetový stránce je, když si nejsem jistej jestli moje hodiny dou správně a to mě pak takovej čas z mýho desktopu na stránce dokáže akorát naštvat. |
||
Joker Profil |
#16 · Zasláno: 26. 10. 2011, 15:28:27
Ugo:
Obecně není pravda, že čas na serveru je vždycky „správný“. Je nutné si uvědomit, že tu mluvíme o dvou různých problémech. 1. V některých situacích je „správný“ čas na počítači klienta, to mohou být třeba hodiny na stránce, nebo čas od/do nějaké události na klientovi (například čas od kliknutí na tlačítko). 2. V jiných situacích je třeba časomíru na stránce řídit nějakým jednotným časem, například čas zbývající do konce aukce. Tam je třeba použít serverový čas. „jedinej moment kdy mě zajímá čas na internetový stránce je, když si nejsem jistej jestli moje hodiny dou správně“ Z čehož vyplývá jedno užitečné sdělení, a sice že nemá smysl si dávat na stránku hodiny pokud předmětem daného webu není měření přesného času. CZghost ale píše, že dělá stránku o „Q3“, což si nejsem jistý co znamená, ale nenašel jsem tuhle zkratku v souvislosti s časovým serverem. Seřizovat si čas v PC podle nějaké webové stránky na které jsou shodou okolností hodiny je, s prominutím, padlé na hlavu. To že počítač funguje jako webový server z něj nedělá autoritu pro poskytování přesného času. Když si na svém počítači pustím webový server a ty stránky tam nahraju, stane se můj „nedůvěryhodný“ lokální čas „důvěryhodným“ serverovým časem? „btw. jak jinak se to řeší když to chceš celý přes JS?“ Jak jsem psal. Ten bod 1. výše se dá řešit celý přes JS a objekt Date. Bod 2. se řeší tak jak jsem říkal- na začátku se zjistí rozdíl mezi serverovým a klientským časem a o ten rozdíl se pak upraví klientský čas. Jedna možnost jak to řešit: PHP do stránky nageneruje JS proměnnou do které uloží aktuální (serverový) čas, následně JS porovná s aktuálním (klientským) časem a spočítá, o kolik má upravovat klientský čas. |
||
CZghost Profil * |
#17 · Zasláno: 26. 10. 2011, 16:14:40
jenikkozak:
Q3 má být hra Quake 3, neboli Quake III Arena. Svátek prostě jen tak, je to na většině webů. |
||
CZghost Profil * |
#18 · Zasláno: 26. 10. 2011, 16:17:33
Joker:
Koukám, že tu někdo miluje JavaScript. Jenže je tu problém: někdo má JavaScript vypnutý a pak to nefunguje. PHP je na serveru, takže tento problém částečně odpadá. |
||
Sir Tom Profil |
#19 · Zasláno: 26. 10. 2011, 16:58:10
CZghost:
Udělej to takto: Jdi na stránku JS skriptů http://javascriptlibrary.sweb.cz/datetime.html a stáhni si tam skript "Datum a čas v boxu". Takhle to pak bude vypadat. V takových JS knihovnách si koneckonců můžeš stáhnout i skripty, které vyplivnou svátky. :) Klidně můžeš udělat ten čas a datum za pomoci PHP, ale otázkou je opravdu proč - je to řešení nestandardní. Jestli někomu vadí, že JS čas je jiný od PHP času, tak není problém si serverový čas pomocí PHP uložit do JS proměnné a s ní pak pracovat. Argument, že někdo mívá JS vypnutý je velice oblíbený (možná až příliš), ale opravdu nikoho takového neznám - zase otázka proč? |
||
Alphard Profil |
#20 · Zasláno: 26. 10. 2011, 17:33:53
Sir Tom:
„Argument, že někdo mívá JS vypnutý je velice oblíbený (možná až příliš), ale opravdu nikoho takového neznám - zase otázka proč?“ Já ano, právě proto, aby se zbavili podobných nesmyslů. Občas ho také vypínám, když mě spíš otravuje než pomáhá. Ono je docela rušivé mít na stránkách běžící hodiny, zvlášť když zobrazují i sekundy. |
||
Joker Profil |
#21 · Zasláno: 26. 10. 2011, 20:34:34
CZghost:
„Koukám, že tu někdo miluje JavaScript.“ Toho jsem opravdu dalek, ale zkusím analogii: A: Dělám do zdi díru na hmoždinku kladivem a šroubovákem, ale vůbec mi to nejde. B: Proč kladivem a šroubovákem? Použijte vrtačku. A: Fajn. Já vlastně chci ty díry tři, tak jednu udělám vrtačkou a další kladivem a šroubovákem. B: Proboha, proč nevyvrtáte všechny tři vrtačkou? A: Koukám, že tu někdo miluje vrtačku. Prostě každý nástroj je vhodný na něco. Že se kladivem výborně zatloukají hřebíky ještě neznamená, že kladivo je nejlepší nástroj i na všechno ostatní. Aneb: „PHP je na serveru,“ …a jako takové se nehodí pro dynamické změny stránky na straně klienta. „problém: někdo má JavaScript vypnutý a pak to nefunguje.“ K tomu otázka: Pro tu konkrétní stránku, je zobrazení průběžně aktualizovaných hodin a svátku nepostradatelná funkčnost kterou je nutné dodat všem návštěvníkům? Nebo je to spíš kravinka u které by se nic nestalo kdyby tam nebyla vůbec, spíš by to část návštěvníků ještě uvítala? |
||
Sir Tom Profil |
#22 · Zasláno: 26. 10. 2011, 22:33:13
Alphard:
„Ono je docela rušivé mít na stránkách běžící hodiny, zvlášť když zobrazují i sekundy.“ Ano, souhlasím s tím, že je to víceméně taková ta hloupost, kde se prostě někteří autoři chtějí ukázat, že něco dovedou. V podstatě to ale žádný užitek nemá. Mně to moc rušivé nepřipadá - nevím, asi už ty různé rádoby věci naprosto ignoruji. Sice to na stránkách je, ale vůbec si toho nevšímám... |
||
CZghost Profil * |
#23 · Zasláno: 27. 10. 2011, 09:26:38
Konec diskuze, datum a čas jsem vymazal... Konec konců, nemohu najít spolehlivý skript, který by se hodil na dvojjazyčný web...
|
||
Časová prodleva: 13 let
|
0