Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Pobranie czasu z serwera
Forum PHP.pl > Forum > Przedszkole
Deusx
Witam !

Mam napisany skrypt w JS, który pokazuje czas o pewne opóźnienie (w zależności jakie ustawiomy dane na stronie).
I skrypt działa w 100% poprawnie, jednak tylko teoretycznie.

Jak wiadomo JS wyświetla czas z naszego komputera i dodaje do niego opóźnione sekundy czy miunty. Bardzo bym chciał, aby czas nie byś wyświetlane z naszego komputera a z time() z php. Da się tak zrobić ? Jak tak, to jak ?

KOD:

[JAVASCRIPT] pobierz, plaintext
  1. function setTimes()
  2. {
  3. document.getElementById("distance").innerHTML = tsdpkt(distance());
  4. var seconds = duration();
  5. var now = new Date();
  6. var doleci = new Date();
  7. var wroci = new Date();
  8. doleci.setSeconds( now.getSeconds() + seconds );
  9. wroci.setSeconds( now.getSeconds() + 2*seconds );
  10.  
  11. dminutes = doleci.getMinutes();
  12. dseconds = doleci.getSeconds();
  13. if (dminutes < 10) dminutes = "0" + dminutes;
  14. if (dseconds < 10) dseconds = "0" + dseconds;
  15. wminutes = wroci.getMinutes();
  16. wseconds = wroci.getSeconds();
  17. if (wminutes < 10) wminutes = "0" + wminutes;
  18. if (wseconds < 10) wseconds = "0" + wseconds;
  19.  
  20. document.getElementById("arriveTime").innerHTML = doleci.getHours()+":"+dminutes+":"+dseconds;
  21. document.getElementById("backTime").innerHTML = wroci.getHours() + ":" +wminutes+ ":" +wseconds;
  22.  
  23. setTimeout("setTimes()",1000);
  24. }
[JAVASCRIPT] pobierz, plaintext
amii
Powinno dać radę ajaxem musiałbyś ustawić odpytywanie strony ze skryptem php co 0,5 sekundy i teorii powinno działać. W/g mnie nie mógłbyś jednak operować na obiekcie date javascriptu, datę musiałbyś wyświetlać odpowiednio formatując dane pobrane ajaxem od skryptu php
rocktech.pl
Witam.

[JAVASCRIPT] pobierz, plaintext
  1. function setTimes(data_z_serwera)
  2.  
  3. {
  4. document.getElementById("distance").innerHTML = tsdpkt(distance());
  5. var seconds = duration();
  6. //i tu podaj datę
  7. var now = new Date(data_z_serwera);
[JAVASCRIPT] pobierz, plaintext


Są cztery sposoby na utworzenie daty:
[JAVASCRIPT] pobierz, plaintext
  1. new Date() // obecna
  2. new Date(milliseconds) //liczba milisekund od 1970/01/01
  3. new Date(dateString) //np. 2013
  4. new Date(year, month, day, hours, minutes, seconds, milliseconds) // np. 2012,02,10,8,10,59,0
[JAVASCRIPT] pobierz, plaintext
#luq
Cytat(amii @ 9.02.2012, 08:52:27 ) *
Powinno dać radę ajaxem musiałbyś ustawić odpytywanie strony ze skryptem php co 0,5 sekundy i teorii powinno działać.


ohno-smiley.gif

A nie lepiej:

[JAVASCRIPT] pobierz, plaintext
  1. var timestamp = <?=time()?>;
[JAVASCRIPT] pobierz, plaintext
amii
#luq a w jaki sposób bez odświeżania JS będzie aktualizował czas pobierany ze strony serwera ? (rozumiem, że o to chodziło autorowi). W ten sposób możesz pobrać czas i przypisać do zmiennej ale nie będziesz go aktualizował (chyba, że o czymś nie wiem)
#luq
No ale sekunda od frontu i od backendu trwa tyle samo prawda?
Wystarczy więc pobrać jedynie początek czasu i już potem dodawać po stronie frontu, w przypadku zakończenia puścić requesta czy rzeczywiście koniec (bo możemy sobie edytować kod frontu).
zegarek84
w poniższym temacie masz rozwiązanie problemu:
[Java][PHP]Zegarek
Deusx
Cytat(zegarek84 @ 9.02.2012, 13:57:59 ) *
w poniższym temacie masz rozwiązanie problemu:
[Java][PHP]Zegarek


Dzięki, znalazłem odpowiedź w w/w temacie.
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.