Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] Zegar działający w przeglądarce
Forum PHP.pl > Forum > Przedszkole
-blank-
Witam wszystkich.
Chciałem zrobić zegar, który działa w przeglądarce (chodzi tongue.gif)
Umiem to zrobić w JavaScripcie, tylko że taki zegar jest nieodporny na przestawienie godziny systemowej (jak ktoś w środku dnia sobie przestawi godzinę na północ, to zegar zrobiony w JS wymięknie i pokaże północ). Jest jakiś sposób na pobieranie godziny z serwera, a nie z systemu w JS? Może AJAX? A może w PHP to sie da zrobić?

Jakby komuś był potrzebny kod zegara, który można zrobić w JS, to przykładowy wygląda tak:
Kod
<html>
<head>
<title>Wyświetlanie daty i godziny</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
</head>
<body>
<h1>Bieżąca data i czas</h1>
<p>
<script language="JavaScript">
function odliczaj()
{
    czas = window.setTimeout("odliczaj();", 1000);
    blok = document.getElementById("zegar");
    secs++;
    if (secs==60)
    {
        secs = 0;
        mins++;
        if (mins==60)
        {
            mins = 0;
            hours++;
            if (hours==24)
            {
                hours = 0;
            }
        }
    }
    zerohours = (hours < 10) ? "0" : "";
    zeromins = (mins < 10) ? "0" : "";
    zerosecs = (secs < 10) ? "0" : "";
    wyswietl = zerohours + hours + ":" + zeromins + mins + ":" + zerosecs + secs;
    blok.innerHTML = wyswietl;
}
now = new Date();
hours = now.getHours();
mins = now.getMinutes();
secs = now.getSeconds();
czas = window.setTimeout("odliczaj();", 0);
document.write("<h1 id='zegar'>");
</script>
</p>
</body>
</html>
Mordoran
Poczytaj ten tekst:
http://www.w3schools.com/ajax/ajax_serverscript.asp
Jest prawie to co chcesz smile.gif tylko tam jest akcja updatowania zrobione gdy cos sie wpisze w inputa. Bedziesz musial przerobic troche.
maziak
PHP

  1. <?php
  2. $godzina=date('G');
  3. $minuta=date('i');
  4. $sekunda=date('s');
  5.  
  6. ?>
  7. <script language="javascript" type="text/javascript">
  8. g=<?php echo $godzina; ?>;
  9. m=<?php echo $minuta; ?>;
  10. s=<?php echo $sekunda; ?>;
  11.  
  12.  
  13. function Mhm() {
  14. s++;
  15. if (s == 60) {
  16. s=0;
  17. m++;
  18. }
  19. if (m == 60) {
  20. m=0;
  21. g++;
  22. }
  23. if (g == 24) {
  24. g=0;
  25. }
  26. zm = document.getElementById("d");
  27. zm.innerHTML = g + "h " + m + "m " + s + "s";
  28. }
  29. window.setInterval('Mhm()',1000);
  30. </script>
  31. <p id="d"></p>
-blank-
@Mordoran
Ok, dziękuję smile.gif

@maziak
Metoda setInterval i setTimeout to to samo, czy czymś się różni?
Też dziękuję smile.gif
maziak
Wykonaj sobie to co napisalem dwa razy, raz z Timeoutem a raz z Intervalem. Timeout opozni wykonanie funkcji o wpisany czas i wykona ja tylko raz, a interval po wykonaniu funkcji znowu odczeka dany czas i ja wykona. I tak w kółko.
Hazel
maziak, zauważ, że skrypt Twój i autora tematu różnią się.
To, co napisałeś, byłoby prawdą, gdyby setTimeout() zastosować w Twoim skrypcie, natomiast w skrypcie u góry to działa zupełnie poprawnie smile.gif
maziak
Cytat(maziak @ 24.08.2007, 12:23:09 ) *
Wykonaj sobie to co napisalem dwa razy, raz z Timeoutem a raz z Intervalem.

Wiem smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.