master007
22.12.2008, 17:24:01
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:)
erix
22.12.2008, 17:36:08
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ę?
SzamanGN
22.12.2008, 17:51:34
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
master007
22.12.2008, 18:30:39
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?
phpion
22.12.2008, 18:37:30
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.
master007
22.12.2008, 18:41:35
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:(
phpion
22.12.2008, 18:43:42
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.
master007
22.12.2008, 19:08:25
Nie chcę bawić się z godziną. Chodzi tylko by skrypt co 5 minut dopisywał do liczby jeden i wyświetlał najnowszą wartość.
piotrooo89
22.12.2008, 19:13:47
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ć?
master007
22.12.2008, 19:36:15
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...
piotrooo89
22.12.2008, 19:38:10
to tą daną możesz zapisać do bazy i trzymać tam i z tamtą dodawać...
master007
22.12.2008, 19:38:19
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?
piotrooo89
22.12.2008, 19:39:25
to ja bym się jeszcze na twoim miejscu zainteresował cron'em.
Mize
22.12.2008, 19:53:37
master007
22.12.2008, 20:00:02
A nie pokusilby sie ktos o napisanie takiego skryptu dla mnie?? Bo ja kompletnie sie gubie w tych datach i tym czasie...
ultra_18
22.12.2008, 20:12:17
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:
<?php
$plik = 'plik.txt';
file_put_contents
($plik,time());?>
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ół
<?php
?>
bartg
22.12.2008, 20:36:56
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ą...
<?php
{
file_put_contents
('data.txt', time());}
$min = 5*60; //5 min = 300 sec
$roznica = time() - $start; $liczba = round($roznica/$min); ?>
Działa? Napewno! Sam sprawdzałem

Pozdr BartG
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.