Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Timeleft
Forum PHP.pl > Forum > PHP
masterek2009
Witam

Mam problem chce ustawić timeleft który pokaże użytkownikowi np.że po jakimś czasie zresetuje rzecz 10min 

Proszę o wyruzomiałość dopiero rozpoczynam przygodę z php  worriedsmiley.gif

Cytat
<?php
$Timeleft=date( '00:00:00', time( ) );
$mTimeleft = mktime(1, 0, 0, date("m"), date("d"), date("Y"));



$timestampFromSql = strtotime($Timeleft);
$now = time();
$mnow = mktime(date("H"),date("i"),date("s"),date("m"),date("d"),date("Y"));

$verschil = $mnow - $mTimeleft;
$aantal = $verschil / 600;
$aantal = floor($aantal);
$aantalfinal = $aantal * 600;

  $timeleft = date('H:i:s', ((($aantalfinal - $mnow)+600)-43200-3600));

?>
masterek2009
Czyli jak powinno wyglądać początek

Cytat
<?php
$Timeleft=date( '00:00:00', time( ) );
$mTimeleft = mktime(1, 0, 0, date("m"), date("d"), date("Y"));


z 10 min 
wookieb
... W php pokazujesz ile sekund zostało. mktime-time=ilosc sekund ktore przeliczasz na minuty (NIE ZA POMOCA DATE - to służy do CZEGO INNEGO)
W javascript obrabiasz to na stoper (bylo setki razy na forum, poszukaj).

Przy każdym odswiezenie strony sprawdzasz w php czy rzeczywiscie minelo 10 minut.
masterek2009
Nie trzebać używać komendy do crona ? 
wookieb
A po co?
masterek2009
Żeby reset był co 10 min (Żeby cały czas się resetował i pokazywał cały czas co 10 min)

Jeszcze pytanie czyli jeszcze napisać stoper w javascript i pójdzie bezproblemu ?
wookieb
Tutaj już działanie dzieli sie na parę cześci
W tabeli z przedmiotami potrzebne ci jest pole (reset_begin) ktory przechowuje liczbe z funkcji time()

1) Cronem sprawdzasz (najlepiej co 10 sekund czy cos *) w bazie które przedmioty maja reset_begin<=(time()-600) i te resetujesz
2) Użytkownikowi pokazujesz stoper (w javascript który co sekunde zmniejsza liczbe sekund -1) ile czasu mu zostało do zresetowanie. Jezeli dobije do 0 to odświezasz mu cała strone (albo robisz to ajaxem, twoj wybor) i przy tym odswiezeniu sprawdzasz czy przedmiot moze byc zresetowany


* poniewaz nie ma mozliwosci ustawienia crona na co 10 sekund to wtedy robisz co minute i w skrypcie robisz tak
Kod
funkcja_resetujaca();
sleep(10); //10 sekunda
funkcja_resetujaca():
sleep(10); //20 sekunda
funkcja_resetujaca():
sleep(10); //30 sekunda
funkcja_resetujaca():
sleep(10);// 40 sekunda
funkcja_resetujaca():
sleep(10);// 50 sekunda
funkcja_resetujaca():
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.