Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ilość tygodni od określonej daty
Forum PHP.pl > Forum > Przedszkole
mk83
Witam
Potrzebuje policzyć ile upłyneło tygodni od określonej daty. Powiedzmy, że urzytkownik zarejestrował się w serwisie 15.10.2005 ( sobota ), jezeli dzisiaj jest 26.10.2005 ( sroda ) to jak wyliczyc ktory tydzien urzytkownik jest juz zarejestrowany.
Wiadomo ze mozna wyliczyc ilosc dni i podzielic to przez 7, ale nie o to mi tutaj chodzi. Nie wiem czy to co napisałem jest jasne wiec spróbuje to dadatkowo zilustrować:

15.10.2005 sobota - data rejestracji urzytkownika - 1 tydzien obecnosci w serwisie
16 niedziela - 1 tydzien

17 pon - 2 tydzien
18 wt - 2 tydzien
19 sr - 2 tydzien
20 czw - 2 tydzien
21 pt - 2 tydzien
22 so - 2 tydzien
23 nie - 2 tydzien

24 pon - 3 tydzien
25 wt - 3 tydzien
26 sroda 3 tydzien

Czyli 26.10.2005 ilosc tygodni wynosi 3, jezeli policzyc to jako ilosc dni miedzy dwoma datami podzielone przez 7 to wyjdzie po zaokragleniu 2.
mike
To zależy od polityki.

Dla Ciebie 2 dni od rejestracji to już tydzień obecności, dla mnie zero. Tydzień jest wtedy kiedy jest ponad 7 dni.

I tu jest właśnie ta różnica jeśli dla ciebie 2 dni to tydzień to przy dzieleniu zaokrąglaj do całości w górę a nie w dół i będziesz miał wynik, którego oczekujesz.
mk83
Moze napisze do czego ta ilosc tygodni jest mi potrzebna, bo tu nie chodzi o zadna polityke smile.gif.
Mam skrypt ktory ma wyswietlac informacje z bazy danych. Jenda informacja na jeden dzien. Chce aby byly one wyswietlane w postaci tygodnia ( u gory historia z mozliwoscia zobaczenia poprzednich tygodni ). Czyli odnoszac sie do mojego przykladu jezeli urzytkownik zarejestrowal sie w sobote to w pierwszym tygodniu bedzie mial tylko sobote i niedziele, a w nastepnych juz pelne 7 dni. Informacje te dodaje sam urzytkownik, jezeli w danym dniu nie napisze informacji to skrypt automatycznie utworzyc informacje np. dzis mnie tu nie bylo.
wymyslilem to tak ze kazdy rekord w bazie danych oprocz tresci informacji, daty dodania i paru innych danych zawiera rowniez numer tygodnia w ktorym wiadomosc zostala napisana, dzieki czemu moge wyswietlic informacje wlasnie w takiej postaci jak pisalem wyzej. I wlasnie do tego potrzebuje policzyc ten numer tygodnia dla konkretnego urzytkownika.
mike
No to mówię:
Ilośc tygodni policzysz dzieląc różnicę daty zarejestrowania i daty obecnej przez siedem. tylko musisz zaokrąglać w górę.
mk83
No to zobacz na moj przyklad. Od daty rejestracji do datay dzisiejszej mija 12 dni. Podzielone przez 7 daje 1,7, po zaokragleniu daje 2, a chodzi o to aby otrzymac 3.
Pigula
mozesz zawsze przechowywac date, ktora byla w poniedzialek tygodnia rejestracji i pozniej liczysz tak jak napisal mike_mech tylko ze od tego poniedzialku
mike
Cytat(Pigula @ 2005-10-27 09:30:27)
mozesz zawsze przechowywac date, ktora byla w poniedzialek tygodnia rejestracji (...)

Nawet nie trzeba jej przechowywać.

Po prostu tak:

data dzisiejsza - data rejestracji + numer dnia tygodnia kiedy nastąpiła rejestracja

To wszystko podzielić przez 7 i zaokrąglić w górę.

Wszystkie potrzebne funkcjie znajdziesz w manualu.
mk83
Ok,dzieki za pomoc smile.gif
niko
a przepraszam ktoś może wkleić mi tu taki kod jak to sie liczy ?

np mam date obecną i teraz zeby mi wpisał w drugiej komórce w bazie date która będzie za 7 dni

a potem bym potrzebował coś takiego ze sprawdziło by bierzącą datę i wyświetliło pozycje jeśli ta z dodanymi dniami jest mniejsza
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.