Loading:


Zegarek wielostrefowy

W odróżnieniu od większości skryptów tego typu, czas jest tutaj obliczany na podstawie czasu uniwersalnego (UTC), znanego też pod nazwą GMT (Greenwich Mean Time). Dlatego czas dla poszczególnych miast, będzie wyświetlany prawidłowo niezależnie od tego, w jakim miejscu na ziemi znajduje się użytkownik oglądający naszą stronę.

Na stronie można umieścić dowolną ilość kontrolek (inputów), wyświetlających czas w dowolnych miejscach na świecie. Funkcję Czas() należy wywołać tyle razy, ile kontrolek mamy w dokumencie. Pierwszym argumentem tej funkcji jest nazwa (name) kontrolki, natomiast drugim jest liczba określająca przesunięcie czasowe w stosunku do czasu uniwersalnego dla danego miasta.

Aby się przekonać jakie jest przesuniecie czasowe dla poszczególnych miast (rejonów) świata, możemy na przykład: dwukrotnie kliknąć zegarek na pasku zadań systemu Windows, następnie wybrać zakładkę "Strefa czasowa" i rozwinąć listę.

Jeżeli przesunięcie czasowe nie zawiera się w pełnej ilości godzin np:

(GMT -03:30) Nowa Funlandia

to czas ten (minus trzy i pół godziny) należy przeliczyć z systemu sześćdziesiętnego na dziesiętny. A więc wywołanie funkcji Czas() będzie wyglądało następująco:

Czas("nowafunl", -3.5);


<input name="nowafunl" size="10">

a kontrolka wyświetlająca ten czas, umieszczona w sekcji :Skrypt działa poprawnie na wszystkich komputerach świata, które mają prawidłowo skonfigurowane: zegar, datę i strefę czasową zgodnie z własną strefą. Skrypt, w sposób automatyczny, uwzględnia przesuwanie czasu w okresach letnim i zimowym.



Napisz Artyku³

Listing

// HEAD

<script type="text/javascript">
<!--
//written by Bogdan Blaszczak "BlaTek"
//homepage http://blatek.board.pl

function zegarek(offs){
 offs=offs+lato_offset;
 var g,m,s,teraz=new Date();
 with(teraz){
  setTime(getTime()+(offs*3600000));
  g=getUTCHours(); m=getUTCMinutes(); s=getUTCSeconds()}
 
 var czas=" "+(g<10?"0":"")+g;
 czas+=(m<10?":0":":")+m;
 czas+=(s<10?":0":":")+s;
 return czas;
}

function zegarStart(){
 var lato=new Date(2000,7,1), teraz=new Date();
 lato_offset=(teraz.getTimezoneOffset()==lato.getTimezoneOffset())?1:0;
 ustawCzas();
 setInterval('ustawCzas()',1000);
}

function ustawCzas(){
 function Czas(id,offs){
  document.clock.elements[id].value=zegarek(offs);
 }
 Czas("vancouver", -8);
 Czas("newyork", -5);
 Czas("buenos", -3);
 Czas("london", 0);
 Czas("warszawa", 1);
 Czas("kair", 2);
 Czas("delhi", 5.5);
 Czas("pekin", 8);
 Czas("tokio", 9);
 Czas("sydney", 10);
}
// -->
</script>



// BODY

<body onload="zegarStart()">

<form name="clock">
<table border="0" width="500">

 <tr><td><input name="vancouver" size="10"> Vancouver</td>
     <td><input name="kair" size="10"> Kair</td></tr>
 <tr><td><input name="newyork" size="10"> New Jork</td>
     <td><input name="delhi" size="10"> Delhi</td></tr>
 <tr><td><input name="buenos" size="10"> Buenos Aires</td>
     <td><input name="pekin" size="10"> Pekin</td></tr>
 <tr><td><input name="london" size="10"> London</td>
     <td><input name="tokio" size="10"> Tokio</td></tr>
 <tr><td><input name="warszawa" size="10"> Warszawa</td>
     <td><input name="sydney" size="10"> Sydney</td></tr>

</table>
</form>






Dodano przez: igor
Ranga: Administrator serwisu Punktów: 28716
Komentarze użytkowników
Skrypt nie działa. W polu input nie wyświetla się czas.
autor: red | 106 | 2009-02-26 00:44:46


Tu ma poprawioną wersję.
  • Zobacz kod dodany do tego wpisu
    • // HEAD

      <script type="text/javascript">
      <!--
      //written by Bogdan Blaszczak "BlaTek"
      //homepage http://blatek.board.pl

      function zegarek(offs){
       offs=offs+lato_offset;
       var g,m,s,teraz=new Date();
       with(teraz){
        setTime(getTime()+(offs*3600000));
        g=getUTCHours(); m=getUTCMinutes(); s=getUTCSeconds()}
       
       var czas=" "+(g<10?"0":"")+g;
       czas+=(m<10?":0":":")+m;
       czas+=(s<10?":0":":")+s;
       return czas;
      }

      function zegarStart(){
       var lato=new Date(2000,7,1), teraz=new Date();
       lato_offset=(teraz.getTimezoneOffset()==lato.getTimezoneOffset())?1:0;
       ustawCzas();
       setInterval('ustawCzas()',1000);
      }

      function ustawCzas(){
       function Czas(id,offs){
        document.clock.elements[id].value=zegarek(offs);
       }
       Czas("vancouver", -8);
       Czas("newyork", -5);
       Czas("buenos", -3);
       Czas("london", 0);
       Czas("warszawa", 1);
       Czas("kair", 2);
       Czas("delhi", 5.5);
       Czas("pekin", 8);
       Czas("tokio", 9);
       Czas("sydney", 10);
      }
      // -->
      </script>



      // BODY

      <body onload="zegarStart()">

      <form name="clock">
      <table border="0" width="500">

       <tr><td><input name="vancouver" size="10"> Vancouver</td>
           <td><input name="kair" size="10"> Kair</td></tr>
       <tr><td><input name="newyork" size="10"> New Jork</td>
           <td><input name="delhi" size="10"> Delhi</td></tr>
       <tr><td><input name="buenos" size="10"> Buenos Aires</td>
           <td><input name="pekin" size="10"> Pekin</td></tr>
       <tr><td><input name="london" size="10"> London</td>
           <td><input name="tokio" size="10"> Tokio</td></tr>
       <tr><td><input name="warszawa" size="10"> Warszawa</td>
           <td><input name="sydney" size="10"> Sydney</td></tr>

      </table>
      </form>
autor: Igor | 107 | 2009-02-26 14:03:47


    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2020 v.1.5 | design: diviXdesign & rainbowcolors