Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] Czas z serwera
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
microh
Witam. Przyglądam się temu skryptowi do odliczania do podaje daty:

http://scripts.hashemian.com/js/countdown.js

Przykład uzycia:

http://www.hashemian.com/tools/javascript-countdown.htm

Moje pytanie: jak zrobić aby odliczanie nie bylo zalezne od czasu na komputerze lokalnym ale aktualny czas pobierany był z serwera (może być za pomocą PHP). Najlepiej bez użycia ajaxa.
kamil4u
Przerabiasz skrypt tak, żeby aktualną datę pobrał ze zmiennej, tak że:
Kod
zmienna = <?php date(/*nie pamiętam co tu ->  manual*/);?>;
, ale żeby nie przeciążać serwera po pobraniu tej dany robisz jak gdyby sztuczny zegar ze zmienną globalną(datę przechowujesz w globalu) i co 1s zmieniasz tą zmienną (+1s). Trochę namieszałem, ale mam nadzieję , że zrozumiałeś tongue.gif
microh
Tez tak właśnie myślałem, nie wiem jednak jaki fragment kodu tak zmienić sciana.gif
kamil4u
Spróbuj w sumie zamienić tylko to
Kod
var dnow = new Date();

//na to co w poprzednim poście zrobiłem(tam jest trochę źle :P ) //popatrz jak to się robi w JS, jak w PHP i połącz
zegarek84
wygeneruj sobie datę w dowolnym formacie na stronie przy pomocy np. date() - jeśli generujesz także javascript za pomocą php to przypisz tą wartość do jakiejś zmiennej, jeśli nie to pobież najpierw w js daną wartość z danego elementu na stronie wyświetlającego datę a następnie odliczaj co sekundę od tej wartości - czas bedziesz miał z poślizgiem od godziny serwerowej o czas przesłania strony przez neta od wygenerowania jej...
microh
Kominowałem, ale nadal nie działa.

Zrobiłem to po kolei:

Najpierw wyświetliłem co tak narawde zawiera ta dnow w kodzie js.
Wyświetliło mi:Wed Apr 22 2009 19:25:38 GMT+0200

I teraz przerobiłem to tak, aby funkcja date w php generowała w takim samym formacie:
  1. var dnow = '<?php echo date('D M j Y G:i:s').' GMT+0200'; ?>';


I nie działa... worriedsmiley.gif

Potem wkleiłem do zmiennej dnow, to co sama wygenerowała funkcja new Date();
Czyli wyszło tak:
  1. var dnow ='Wed Apr 22 2009 19:25:38 GMT+0200';


I nadal nie działa ;( wstydnis.gif
kamil4u
Poczytaj jak to się robi w JS: https://developer.mozilla.org/en/Core_JavaS...al_Objects/Date
microh
Przeczytałem całe, nie znalazłem rozwiązania..

Jakies sugestie? blinksmiley.gif
kamil4u
Jeszcze trzeba zrozumieć tongue.gif
Kod
new Date(year, month, date [, hour, minute, second, millisecond ])
u Ciebie coś w stylu:
Kod
new Date(<?php echo(/*tu tylko rok*/); ?>, <?php echo(/*tu tylko miesiąc*/); ?>,...
i tak dalej
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.