Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Java][PHP] czas & data z serwera
Forum PHP.pl > Forum > Przedszkole
9tiny1
Witam

Jestem nowy oraz to mój pierwszy post na waszym forum. Dlatego zdaje mi się że w idealnym miejscu pisze.

Zdaje sobię sptawę że podobny temat już pewno się przewinoł kilka razy przez to forum. Ale do rzeczy.

Rzeczy w tym że mam konkretny skrypn napisany w JavaScript prze ze mnie (nie ukrywam że sugerowałem się innymi skryptami lecz finalny efekt to dzieło mojej własnej pracy) do obliczania czasu i daty. Lecz jak to wiadomo JS cięgnie dane z komputera lokalnego, a mi zależy żeby były pobierane z serwera i tu trzeba dodać gdzieś trochę kodu PHP czy jakoś tak, ale nie wiem jak sie za to zabrać.
Mógł by mi ktoś pomóc i wytłumaczyć jak przedszkolakowi skąd się co bierze i po co żeby mój skrypt zassał date i czas z serwera??

O to mój skrypt:
Kod
function zegar() {

    var teraz=new Date();

    function zero(liczba)
    { return liczba=(liczba < 10)? "0"+liczba : liczba; }
    
    
            //CZAS
    var godzina = zero(teraz.getHours());
    var minuta = zero(teraz.getMinutes());
    var sekunda = zero(teraz.getSeconds());

    if (godzina >= 0 && godzina < 6 ) godzina = 'Ojej - to był tylko sen?... - '  + godzina;
       if (godzina >= 6 && godzina < 9 ) godzina = 'Zaczyna się kolejny dzień - '  + godzina;
       if (godzina >= 9 && godzina < 19 ) godzina = 'Kolejny piękny dzionek - '  + godzina;
      if (godzina >= 19 && godzina < 0 ) godzina = 'No to mamy nocke. Witam w świecie snu - '  + godzina;

    document.getElementById('czas').innerHTML =
            ('<abbr title="CZAS JEST MIERZONY WEDŁUG TWOJEGO KOMPUTERA"; id="czas_js">')
            + godzina + ':' + minuta + ':' + sekunda; ('</abbr>')
        

    setTimeout("zegar()",1000);


            //DATA
    var nazwa = new Array('Poniedziałek - ', 'Wtorek - ', 'Środa - ', 'Czwartek - ', 'Piątek - ', 'Sobota - ', 'Niedziela - ');
    var tydzien = nazwa[teraz.getDay()-1];
    var dzien = zero(teraz.getDate());
    var miesiac = zero(teraz.getMonth()+1);
    var rok = teraz.getFullYear();
        
    document.getElementById('data').innerHTML =
            ('<abbr title="DATA JEST MIERZONY WEDŁUG TWOJEGO KOMPUTERA"; id="data_js">')
            + tydzien + dzien + '.' + miesiac + '.' + rok + 'r. '; ('</abbr> ') }


Dziękuje bardzo za pomoc, wrozumienie i wszelkie sugestie.

P.S.
Czy na waszym forum można liczyć na pomoc niekoniecznie związaną z php?
markuz
Po pierwsze Java != JavaScript smile.gif

Co do pobierania czasu z serwera użyj time a wyświetl ją sobie po swojemu za pomocą date.
stud3nt
Na mój chłopski rozum, najprościej (bez AJAXA) będzie tak:

1) Piszesz funkcję JS obliczającą datę. Funkcja musi jakoś pobierać parametr daty z zewnątrz, np:
  1. function zegarek(data_z_php) {
  2. var data_ze_skryptu = new Date(data_z_php);
  3. //
  4. //dalsza część skryptu
  5. //
  6. }

2) Umieszczasz plik JS z tą funkcją na górze, przed znacznikiem BODY (nieoptymalne, ale konieczne...);

3) W kodzie HTML umieszczasz wywołanie funkcji:
  1. <script type="text/javascript">
  2. zegarek("<?php echo date('D, d M y H:i:s')." +0000"; ?>");
  3. </script>


W ten sposób, po odpaleniu pliku do funkcji zostanie przekazana data z PHP w formacie umożliwiającym JSowi wygenerowanie obiektu Date z datą ustawioną zgodnie z Twoim życzeniem.
9tiny1
czyli cały skryp ma tak wyglądać:
Kod
function zegar(data_z_php) {

var data_ze_skryptu = new Date(data_z_php);

    function zero(liczba)
    { return liczba=(liczba < 10)? "0"+liczba : liczba; }
    
    
            //CZAS
var godzina = zero(data_ze_skryptu.getHours());
var minuta = zero(data_ze_skryptu.getMinutes());
var sekunda = zero(data_ze_skryptu.getSeconds());

    if (godzina >= 23 && godzina < 6 ) godzina = 'Ojej - to był tylko sen?... - '  + godzina;
       if (godzina >= 6 && godzina < 9 ) godzina = 'Zaczyna się kolejny dzień - '  + godzina;
       if (godzina >= 9 && godzina < 19 ) godzina = 'Kolejny piękny dzionek - '  + godzina;
      if (godzina >= 19 && godzina < 23 ) godzina = 'No to mamy nocke. Witam w świecie snu - '  + godzina;

    document.getElementById('czas').innerHTML =
            ('<abbr title="CZAS JEST MIERZONY WEDŁUG TWOJEGO KOMPUTERA"; id="czas_js">')
            + godzina + ':' + minuta + ':' + sekunda; ('</abbr>')
        

    setTimeout("zegar()",1000);


            //DATA
    var nazwa = new Array('Poniedziałek - ', 'Wtorek - ', 'Środa - ', 'Czwartek - ', 'Piątek - ', 'Sobota - ', 'Niedziela - ');
    var tydzien = nazwa[data_ze_skryptu.getDay()-1];
    var dzien = zero(data_ze_skryptu.getDate());
    var miesiac = zero(data_ze_skryptu.getMonth()+1);
    var rok = data_ze_skryptu.getFullYear();
        
    document.getElementById('data').innerHTML =
            ('<abbr title="DATA JEST MIERZONY WEDŁUG TWOJEGO KOMPUTERA"; id="data_js">')
            + tydzien + dzien + '.' + miesiac + '.' + rok + 'r. '; ('</abbr> ') }


a kod html tak:
Kod
<!doctype html>
<html>
<head>
    <meta charset='utf-8' />
    <meta name='author' content='patS.' />

    <title>projekt 2.0</title>

    <script type='text/javascript' src='js/czas_&_data.js'></script>

</head>
<body onload='zegar()'>

<script>
  zegarek("<?php echo date('D, d M y H:i:s')." +0000"; ?>");
</script>

</body>
</html>


czy o czymś zapomniałem jeszcze questionmark.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.