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
-
Jak zvýšit CTR vašeho e-mail marketingu
9. září 2024 -
Vstupte do éry umělé inteligence: ASOME Max Studio s AMD Ryzen™ 9 7940HS
14. listopadu 2023 -
Gaming na HDR monitoru: Stojí to za to?
12. srpna 2024 -
Certifikáty Entrust ztratí důvěru Google Chrome
8. července 2024
Nejnovější
-
AI a internetové podvody
29. října 2024 -
Užitečné nástroje pro bezpečnost na internetu
17. října 2024 -
Jak se chránit před podvody na internetu – část 2
14. října 2024 -
Doména .io v ohrožení: Co přinese předání Čagoských ostrovů?
10. října 2024