ďťż

[PHP] odświeżanie czasu

       

Podstrony


telcocafe

Mam umieszczony na stroni aktualny cza:

echo('Dziś jest: <B>' .date("d.m.Y").' '.date("H:i:s").'</B>');
Jak zrobić aby czas odświeżany był co sekundę, a nie tak ja teraz przy przeładowaniu strony?



javascript

w PHP tego nie zrobisz, chyba że ajaxem, ale to idiotyzm by był nieco

Jeżeli Ajax to też Javascript :D
Będę dobrym człowiekiem i pomogę. To jest mój skrypt:<script type="text/javascript"> <!-- <![CDATA[ var time = new Date(); var day = time.getDate(); if (day <= 9) day = '0' + day; var month = time.getMonth() + 1; if (month <= 9) month = '0' + month; var year = time.getYear(); if (year <= 199) year += 1900; var hour = time.getHours(); if (hour <= 9) hour = '0' + hour; var minutes = time.getMinutes(); if (minutes <= 9) minutes = '0' + minutes; var seconds = time.getSeconds(); if (seconds <= 9) seconds = '0' + seconds; document.write(day + '.' + month + '.' + year + ' ' + hour + ':' + minutes + ':' + seconds); // ]]> --> </script>Nie wiem jedynie, czy jest jakiś sposób na zera przed liczbami mniejszymi od dziesięciu... Może ktoś zna prostsze rozwiązanie od mojego?
Użytkownik andrzej_aa edytował ten post 14 czerwiec 2007, 10:24
<?php echo('Dziś jest: <B>' .date("d.m.Y").' '.date("H:i:s").'</B>'); header('Refresh: 1; url=' . $URL); ?>

Gdzie zmienna $URL to url do strony z tym kodem




<?php echo('Dziś jest: <B>' .date("d.m.Y").' '.date("H:i:s").'</B>'); header('Refresh: 1; url=' . $URL); ?>

Gdzie zmienna $URL to url do strony z tym kodem

Ale wtedy strona i tak będzie przeładowywana. A autor tematu tego nie chciał.

Ja bym użył tylko Javascript wraz z technologią DOM.
Oto kod:
W sekcji HEAD
<script> // pobieranie daty i czasu function odliczanie() { // tutaj zwiększasz liczbę sekund o 1 oraz sprawdzenie czy sekund nie jest więcej niż 59 itp... // ......... // wypisujesz na stronie datę document.getElementById('komorka').innerHTML=czas; } setInterval("odliczanie()",1000); </script>

W sekcji BODY
<table> <tr> <td id='komorka'> </td> </tr> </table>
Zamiast tabeli można użyć innego znacznika, np. <A>, <FONT>, <P>. Warunkiem jest tylko przypisanie mu identyfikatora (id="....").
Ten przykład pisałem "na gorąco", więc mogą się pojawić jakieś błędy.

W tym rozwiązaniu datę pobierasz tylko raz, a następnie wstawiasz funkcję, która bedzie sama dodawać kolejne sekundy, minuty itp.
Zakładam, że wiesz co i jak trzeba teraz dodać. Mi chodziło tylko o napisanie algorytmu wyświetlania na ekranie
Użytkownik Kamcio edytował ten post 16 czerwiec 2007, 18:47
Domyślam się ,że autorowi chodziło o takie odświerzanie czasu ,aby na stronie było widać czas serwera.

Można by wpisać gdzieś w nagłówku:
<script language="javascript" type="text/javascript"> var Czas = new Array( <?=date("d\,m\,y\,H\,i\,s") ?> );//Tablica (dzień,miesiąc,rok,godzina,minuta,sekunda) </script>
Potem kod zaproponowany przez Kamcio ,z tym że uwaga: setInterval("odliczanie()",1000); powinno być wewnątrz funkcji odliczanie() ,aby zapewnić powtarzalne wykonywanie funkcji.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.