Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Liczba zwiększająca się co określony czas
master007
post 22.12.2008, 17:24:01
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 9.12.2008

Ostrzeżenie: (0%)
-----


Witam,
Mógłby ktoś mi pomóc napisać prosty skrypt wyświetlający liczbę zwiększającą się o "1" co 5 minut? Potrzebne mi do projektu zamowionej witryny a ja sam mam problemy z funkcjami czasowymi w PHP.

Z gory dziekuje za pomoc i pozdrawiam:)
Go to the top of the page
+Quote Post
erix
post 22.12.2008, 17:36:08
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
a ja sam mam problemy z funkcjami czasowymi w PHP.

Odrób lekcje, bo ten temat będzie wracał dość często.

Cytat
napisać prosty skrypt wyświetlający liczbę zwiększającą się o "1" co 5 minut?

A nie lepiej byłoby cronem wywoływać odpowiedni kod, który zwiększy np. zapisaną w pliku liczbę?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
SzamanGN
post 22.12.2008, 17:51:34
Post #3





Grupa: Zarejestrowani
Postów: 94
Pomógł: 14
Dołączył: 11.10.2007

Ostrzeżenie: (0%)
-----


Na tym forum jest rozwiązanie twojego problemu, ale trzeba poszukać i zaadoptować kod do swoich potrzeb!
Jeden komentarz:
Tego nie robi się w PHP lecz w JS.

Rozwiązanie twojego problemu


--------------------
SzamanGN
Go to the top of the page
+Quote Post
master007
post 22.12.2008, 18:30:39
Post #4





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 9.12.2008

Ostrzeżenie: (0%)
-----


Niestety to nie rozwiązuje mojego problemu gdyż zaproponowany przez Ciebie skrypt Java działa, ale wyłączając stronę i po jakimś czasie ją włączając licznik zaczyna odliczanie od nowa. A jak zrobić by skrypt działał cały czas, nawet jak ja sam nie jestem na stronie? I by inni mogli oglądać wciąż najbardziej aktualną wartość i by wszyscy widzieli to samo a nie za każdym razem by skrypt zaczynał zliczać od nowa?
Go to the top of the page
+Quote Post
phpion
post 22.12.2008, 18:37:30
Post #5





Grupa: Moderatorzy
Postów: 6 070
Pomógł: 860
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Możesz również zrobić to inaczej. Przykład: o 8:00 licznik wskazuje 1, a o 8:30 ma wskazywać 10. Wychodzi z tego, że ma być zwiększany 1 jednostkę co 3 minuty. Sprawdzasz więc aktualny czas, odpowiednio go obrabiasz (matematyka się kłania) i uzyskujesz aktualny licznik.
Go to the top of the page
+Quote Post
master007
post 22.12.2008, 18:41:35
Post #6





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 9.12.2008

Ostrzeżenie: (0%)
-----


No właśnie chodzi mi by skrypt zwiększał liczbę o 1 co określony czas np. 5 minut. I żeby pracował non-stop i zapamiętywał coraz to nową liczbę. Tylko jak to ładnie do PHP przenieść to nie mam już pojęcia:(
Go to the top of the page
+Quote Post
phpion
post 22.12.2008, 18:43:42
Post #7





Grupa: Moderatorzy
Postów: 6 070
Pomógł: 860
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




To może podam prostszy przykład: 8:00 ma 1, 8:59 ma mieć 60. W jaki sposób możesz wziąć aktualną wartość licznika? Patrząc na liczbę minut i dodając 1.
Go to the top of the page
+Quote Post
master007
post 22.12.2008, 19:08:25
Post #8





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 9.12.2008

Ostrzeżenie: (0%)
-----


Nie chcę bawić się z godziną. Chodzi tylko by skrypt co 5 minut dopisywał do liczby jeden i wyświetlał najnowszą wartość.
Go to the top of the page
+Quote Post
piotrooo89
post 22.12.2008, 19:13:47
Post #9


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




ja bym zrobił jakąś pętlę i wcisnął w nią sleep. ale rozwiązania phpion'a również jest dobre więc nie rozumiem dlaczego nie chcesz go użyć?


--------------------
Go to the top of the page
+Quote Post
master007
post 22.12.2008, 19:36:15
Post #10





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 9.12.2008

Ostrzeżenie: (0%)
-----


A czy przy rozwiązaniu z godziną licznik nie będzie np o godz. 8 rano każdego dnia zaczynał liczenia od nowa? Chodzi mi o to zeby np o 8 rano jutro była jakaś liczba i zwiększała się co 5 minut o 1, tak aby było że jak wejdę na stronę o 8 rano następnego dnia wartość była odpowiednio zwiększona i by dalej rosła...
Go to the top of the page
+Quote Post
piotrooo89
post 22.12.2008, 19:38:10
Post #11


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




to tą daną możesz zapisać do bazy i trzymać tam i z tamtą dodawać...


--------------------
Go to the top of the page
+Quote Post
master007
post 22.12.2008, 19:38:19
Post #12





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 9.12.2008

Ostrzeżenie: (0%)
-----


ale ta funkcja sleep faktycznie może być dobrym rozwiązaniem:) Tylko jak zrobić by skrypt zapamiętywał wartość i wyświetlał najbardziej aktualną? I by pracował nawet jak nie oglądam tej strony, ale jak już powrócę na nią za jakiś czas to czy ta wartość będzie powiększona o odpowiednią liczbę jednostek od czasu mojej ostatniej wizyty?
Go to the top of the page
+Quote Post
piotrooo89
post 22.12.2008, 19:39:25
Post #13


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




to ja bym się jeszcze na twoim miejscu zainteresował cron'em.


--------------------
Go to the top of the page
+Quote Post
Mize
post 22.12.2008, 19:53:37
Post #14





Grupa: Zarejestrowani
Postów: 84
Pomógł: 6
Dołączył: 26.03.2008
Skąd: Łódź

Ostrzeżenie: (0%)
-----


CRON + http://pl.php.net/manual/en/function.file-put-contents.php + http://pl.php.net/manual/en/function.file-get-contents.php ?
I tak najprościej było by wiliczać to liczbę na podstawie daty i godziny, no ale.


--------------------
NULL;
Go to the top of the page
+Quote Post
master007
post 22.12.2008, 20:00:02
Post #15





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 9.12.2008

Ostrzeżenie: (0%)
-----


A nie pokusilby sie ktos o napisanie takiego skryptu dla mnie?? Bo ja kompletnie sie gubie w tych datach i tym czasie...
Go to the top of the page
+Quote Post
ultra_18
post 22.12.2008, 20:12:17
Post #16





Grupa: Zarejestrowani
Postów: 71
Pomógł: 4
Dołączył: 30.10.2008

Ostrzeżenie: (0%)
-----


Ja bym to zrobił tak zapisałbym do pliku czas uniksowy do jakiegos pliku od którego zaczelo by sie to odliczanie robi sie to tak:

  1. <?php
  2. $plik = 'plik.txt';
  3. file_put_contents($plik,time());
  4. ?>


Później wczytywałbym wartość tego pliku i odejmował ją od aktualnego czasu dzielił przez 300 (300 sekund) i zakraglal w góre lub co raczej adekwatne w tym przyadku w dół

  1. <?php
  2. $time = file_get_contents($plik);
  3. $czas = floor(time() - $time)/300);
  4. ?>
Go to the top of the page
+Quote Post
bartg
post 22.12.2008, 20:36:56
Post #17





Grupa: Zarejestrowani
Postów: 225
Pomógł: 25
Dołączył: 4.07.2007
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Zamist crona masz prostrze odliczanie. Zapisz sobie $start w któej będzie czas kiedy zaczęło się odliczanie a potem porównuj z dzisiejszą datą...
  1. <?php
  2. if(!file_exists('./data.txt'))
  3. {
  4.       file_put_contents('data.txt', time());
  5. }
  6. $min = 5*60; //5 min = 300 sec
  7. $start = file_get_contents('data.txt');
  8. $roznica = time() - $start;
  9. $liczba = round($roznica/$min);
  10. ?>


Działa? Napewno! Sam sprawdzałem smile.gif

Pozdr BartG

Ten post edytował bartg 22.12.2008, 20:42:31


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.05.2024 - 18:21