Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Dany tydzień w data
Forum PHP.pl > Forum > Przedszkole
kodepiko6
Witam.

Chciałbym prosić o pomoc - wskazówkę - przykład, dotyczący 'złapania danego tygodnia'.

Mianowicie, mam sobie statystyki rejestracji na stronie, słupeczki informujące mnie ilu użytkowników zarejestrowało się w ciągu tygodnia
(z wyszczególnieniem dniami tygodnia), a następnie porównania z poprzednim tygodniem.

Wyglądałoby to mniej więcej tak: (oczywiście dane są przykładowe Lkingsmiley.png )
http://iv.pl/images/92720495724017052440.jpg

Oczywiście mógłbym ustawić datę, od poniedziałku do niedzieli, ale musiałbym to cały czas zaktualizować,
mam nadzieję że jest jakiś myk-patent na taką sztuczkę smile.gif

No więc rozchodzi się o to, że aktualnie mamy wtorek, 10 kwietnia,
a ja chciałbym uzupełnić słupki danymi 'aktualny tydzień' z przedziału czasowego 9.04 - 16.04 (czyli pełny tydzień) -
jak zrobić później poprzedni tydzień to już wiem - strtotime i parametr -7 days (2.04 - 9.04)
Ale tutaj nie mam pomysłu jak to rozwiązać, by uzyskać tą 'podstawę' do dalszych działań smile.gif

Z góry dziękuję za jakiekolwiek zainteresowanie i pomoc, pozdrawiam!
tolomei
Witaj.

W jakim formacie trzymasz datę w bazie?
Podaj przykłady.
kodepiko6
Cytat(tolomei @ 10.04.2012, 18:01:44 ) *
Witaj.

W jakim formacie trzymasz datę w bazie?
Podaj przykłady.


w formacie 2012-04-10 18:25:00

tj. date("Y-m-d H:i:s");

Ale ogólnie rzecz biorąc, będę sobie zbierał jakąś liczbę rejestracji z danego przedziału czasowego, hmm...

jakbym zrobił SELECT COUNT(*) FROM dane WHERE DATE_SUB(NOW(), INTERVAL 7 DAY) < data;

To odpada, bo to 7 dni od aktualnego czasu, no ale dzisiaj mamy np. wtorek, który nie jest początkiem tygodnia jak wiadomo.

Myślę, że zrobię to na zasadzie warunkowej (tylko nie wiem czy to dość optymalne i prawidłowe rozwiązanie)
np.

  1. $dzien = date("D");
  2.  
  3. if($dzien == 'Mon'){
  4. $okres_do = date("Y-m-d");
  5. $okres_od = strtotime("-7 days");
  6. $okres_od = date('Y-m-d H:i:s', $okres_od);
  7. }


i tak wszystkie dni tongue.gif
Co o tym myślisz?
r4xz
1. pobierz dzień tygodnia numerycznie od 1-7 (możliwe że to od 0-6 było, sprawdź)
od aktualnej daty odejmij/dodaj brakujące i masz granice tygodnia wink.gif

2. pobierz numer tygodnia (od początku roku) i dodaj x*7 dni; x*7+7 dni (od początku roku) i znów masz granice

i chyba jeszcze kilka sposobów by się znalazło wink.gif
kodepiko6
Cytat(r4xz @ 10.04.2012, 18:45:42 ) *
1. pobierz dzień tygodnia numerycznie od 1-7 (możliwe że to od 0-6 było, sprawdź)
od aktualnej daty odejmij/dodaj brakujące i masz granice tygodnia wink.gif

2. pobierz numer tygodnia (od początku roku) i dodaj x*7 dni; x*7+7 dni (od początku roku) i znów masz granice

i chyba jeszcze kilka sposobów by się znalazło wink.gif


Podziękował, faktycznie - na numerkach będzie prościej i przyjemniej.
Dzięki za wskazówkę, pozdrawiam. smile.gif
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.