Zobrazenie času na serveru v JavaScriptu
Na mnohých stránkach sa stretávame s výpisom aktuálneho času. Väčšinou sa jedná o čas zistený z lokálneho počítača, čo nie je vždy vyhovujúce. Tento článok vám ukáže ako zobraziť aktuálny čas, zistený zo serveru.
Zobrazovanie aktuálneho času z lokálneho počítača je viac menej zbytočné, pretože väčšinou sa stačí pozrieť na hlavný panel. Tento skript možno niekoho aj prekvapí, prečo je na stránke iný čas (ten správny), oproti tomu lokálnemu na hlavnom panely.
Postup je jednoduchý, najskôr si zistíme čas na servery. Pre nás je vhodná funkcia, ktorá nám vráti počet sekúnd od 1.1. 1970. Potom si vygenerujeme JavaScript kde premennej priradíme hodnotu s počtom sekúnd od 1.1. 1970, ktorú nám vráti funkcia Date(„U“). Teda v PHP bude kód pre naplnenie premennej JavaScriptu počtom sekúnd od 1.1. 1970 vyzerať nasledovne:
|
Všetok ostatný kód bude JavaScript a HTML. Vytvoríme si formulár, ktorý bude zobrazovať čas na našom lokálnom počítači, servery a rozdiel medzi týmito dvoma časmi.
|
Pomocou JavaScriptu by sme mohli postupovať nasledovne: k premennej s, ktorá obsahuje počet sekúnd od 1.1. 1970 by sme každých 1000 ms pripočítali jednu sekundu a vhodnou funkciou premenili počet sekúnd na čitateľný formát. Takto som to urobil najskôr i ja, avšak neskôr som zistil, že takto vznikajú veľké rozdiely, ak som si čas porovnával s lokálnym časom. Bude to pravdepodobne tým, že prikázať JavaScriptu, aby každých 1000 ms zmenil čas je nepresné, pretože samotné vykonanie kódu trvá istý čas a tak už po minúte bol rozdiel niekoľko sekúnd.
Tento problém som riešil nasledovne: vytvoril som premennú lokalny_start, ktorá obsahuje počet ms od 1.1. 1970 na lokálnom počítači. K tomu v JavaScripte slúži funkcia getTime() objektu Date().
|
Vytvoríme si funkciu, ktorá sa bude spúšťať každú sekundu. Na jej začiatku si naplníme tri premenné:
- lokalny – objekt Date nastavený na aktuálny dátum a čas
- posun – rozdiel medzi lokálnym aktuálnym časom a lokálnym časom pri spustení skriptu (načítaní stránky), jednoducho čas od načítania stránky v ms
- server – čas na „servery“ v ms (počet sekúnd od 1.1. 1970 získaných zo serveru*1000 + posun)
Hodnoty, ktoré sme potrebovali máme naplnené, avšak v ms, preto si vytvoríme funkciu Format(ms), ktorá nám vstupný argument (počet ms od 1.1. 1970) prerobí na čitateľný formát a tento reťazec nám aj vráti.
|
Potom priradíme formulárovým prvkom tie správne hodnoty a zabezpečíme, aby sa funkcia spúšťala každú sekundu.
|
Samozrejme skript bude ukazovať nesprávny čas, ak sa už po načítaní stránky pokúsite zmeniť čas na lokálnom počítači. Ak by ste si chceli nastaviť čas podľa času, ktorý ukazuje server, museli by ste po zmene času na lokále znovunačítať stránku (Ctrl-R).
Ukážku, aký čas máte nastavený na vašom lokálnom počítači oproti serveru nájdete tu.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Webdesign: Jak optimalizovat tlačítka na webu
7. března 2024 -
Windows App: Pracujte odkudkoliv, kdykoliv
3. listopadu 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024