Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [js] Zegar działający w przeglądarce
--blank--
post 24.08.2007, 11:02:04
Post #1





Goście







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>
Go to the top of the page
+Quote Post
Mordoran
post 24.08.2007, 11:07:55
Post #2





Grupa: Zarejestrowani
Postów: 81
Pomógł: 2
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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.


--------------------
I WANT TO BELIEVE
Co to, to nie mogę powiedzieć 8)
--==SGC SG1==--
<<Jaffa Kree!!!>>
Go to the top of the page
+Quote Post
maziak
post 24.08.2007, 11:12:20
Post #3





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 9.07.2007

Ostrzeżenie: (0%)
-----


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>


Ten post edytował maziak 24.08.2007, 11:14:10
Go to the top of the page
+Quote Post
--blank--
post 24.08.2007, 11:15:02
Post #4





Goście







@Mordoran
Ok, dziękuję smile.gif

@maziak
Metoda setInterval i setTimeout to to samo, czy czymś się różni?
Też dziękuję smile.gif
Go to the top of the page
+Quote Post
maziak
post 24.08.2007, 11:23:09
Post #5





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 9.07.2007

Ostrzeżenie: (0%)
-----


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.

Ten post edytował maziak 24.08.2007, 11:23:34
Go to the top of the page
+Quote Post
Hazel
post 24.08.2007, 11:26:26
Post #6





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
maziak
post 24.08.2007, 11:31:45
Post #7





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 9.07.2007

Ostrzeżenie: (0%)
-----


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

Ten post edytował maziak 24.08.2007, 11:31:57
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.04.2025 - 05:44