Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wartość danej w zależności od daty
Forum PHP.pl > Forum > Przedszkole
lamcpp
załóżmy ze mam zmienną o nazwie:
  1. $ilosc

Pobieram bieżącą datę za pomocą:
  1. $data = date("d-m-Y");

Chciałbym aby jutro, zmienna $ilosc była większa o 100.Pojutrze zeby była większa o kolejne 100. Czyli zmienna jest zależna od dnia, po godzinie 24:00 zmienna zwiększa się o zadaną wartość dajmy na to o 100. Jak to zrobić?
john_doe
żeby samo Ci się to działo po północy to musi to działać na cron`ie.

fajne ćwiczenie w ogóle dla Ciebie.

zapisz sobie datę startową np do pliku, odczytuj ten wpis i porównuj z datą dzisiejszą.
zwykły zapis i odczyt z pliku + ify.

lamcpp
no wlasnie myslałem nad bazą danych, ale chciałem tego uniknąć, jakie rozwiązanie bedzie lepsze w tym przypadku zapisywac datę do pliku czy do bazy? oraz czy nie da się tego zrobić bez plików i bazy w php
GreenGo
hmm, a możę weź datę w timestamp ( ilość sec od 1970 roku). Ustal od kiedy ma się zwiększać ta Twoja zmienna (86400sec * ilość dni od 1970 roku) i odejmij od timestamp.
Potem ifami psrawdzaj czy upłynęło kolejne 86400 sec i jeśli tak to zwiększaj zmienną.

Nie wiem czy dobrze kombinuję ale będziesz miał co każde 24 nową wartość zmiennej.
sadistic_son
Możesz to zrobić i w pliku i w bazie.
Dla pliku zrób tak:
Zawartość pliku:
24-10-2010 17:55|200

Oznacza to że w powyższym czasie wartość zmiennej była równa 200. Plik odczytuj do tablicy za pomoca explode:
  1. $zpliku=explode("|",$zpliku);
Teraz $zpliku[0] będzie datą a $zpliku[1] wartością. Następnie wystarczy że porównasz obecną datę z tą z plku, obliczysz ile minęło dni i o odpowiednią ilość zwiększysz wartość:
  1. $teraz=time();
  2. $data=time($zpliku[0]);
  3. $roznica=$teraz-$data;
  4. $dni=$różnica/86400; 60sekund * 60minut * 24 godziny
  5. $dni=round($dni); //zaokrąglenie do całych dni
  6. for($i=0;$i<$dni;$i++){
  7. $zpliku[1]=$zpliku[1]+100; //zwiększanie wartości o szukaną ilość
  8. }
No i Cron jest zbędny.
PS. Pisane z palca, nie sprawdzane. Może nie działać, lub mogą być usterki. Ale sposób sądzę, że trafny.
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.