ďťż

: Czasowe pojawianie się poszczeglnych kategorii

Pary_anime

Większość serwisów zakłada istnienie stałego okreslenia hierarchi ważności kategorii, a przecież tak nie jest. Znaczenie poszczególnych elementów zmienia się w czasie. Za tymi priorytetami użytkowników musza podążać kategorie.

Przykładowo, w okresie od poczatku lutego do 14 lutego największą popularnościa bedą cieszć sie sprawy związane z walentynkami, ale potem ostatkami, Wielkanocą , wakacjami, Sobótką, urlopami, nowym rokiem szkolnym, itd

Widoczność tych wszystkich kategorii jest zbędna. Przykładowo po co komu treści kolend w czasie Wielkiego Postu!


syriusz napisał(a):Większość serwisów zakłada istnienie stałego okreslenia hierarchi ważności kategorii, a przecież tak nie jest. Znaczenie poszczególnych elementów zmienia się w czasie. Za tymi priorytetami użytkowników musza podążać kategorie.

Nie jestem przekoany, że takie rozwiązanie jest komukolwiek potrzebne, chociaż w niczym chyba nie przeszkadza.

Jesli tak to chcecie zrobic, to oczywiście można. Mam wrażenie, że wtedy trzeba zmienic cała filozofię działania. Ważnym elementem staje sie kalendarz. Trudno jeszcze dziś ocenić jak to wpłynie na wielkość bazy danych, a co za tym idzie szybkość aplikacji.
Xhamon napisał(a):Mam wrażenie, że wtedy trzeba zmienic cała filozofię działania. Ważnym elementem staje sie kalendarz.

Ja wyobrażam sobie to jako zbiór informacji w przedziałach czasu, tzn. W przedziale od daty/czasu do daty/czasu ma się element zachowywać tak i mieć co jakiś czas taką rangę.

Ogólnie można sobie coś wyobrazić, że coś w jakimś przedziale czasu zachowuje się w określnony sposób, w jakichś mniejszych przedziałach czasu. Takimi przedzialami moga być dni, tygodnie, miesiące.

Zdarzenia mogą mieć miejsce corocznie, miesięcznie, tygodniowo.
kacper napisał(a):Ogólnie można sobie coś wyobrazić, że coś w jakimś przedziale czasu zachowuje się w określnony sposób, w jakichś mniejszych przedziałach czasu. Takimi przedzialami moga być dni, tygodnie, miesiące.

Zdarzenia mogą mieć miejsce corocznie, miesięcznie, tygodniowo.
Może warto zacząć od tego co mamy na początku i od tego jakie informacje mozn uzyskać z analizy aktualnej daty:
Data aktualna
lrok
lmiesiąc
ldzień
lgodzina
lminuta
ldzień tygodnia
ltydzień w miesiącu (pierwszy, drugi, trzeci, czwarty, ostatni)

Nie wiem jednak jak to zrobić w bazie danych, szczególnie tydzień w mieiącu. Jest sposób wyciagnięcia tygodnia w roku, ale tu nie o to chodzi.

Teraz przegląd funkcji z manuala PHP

Lista funkcji PHP dla daty i czasu
lcheckdate -- Waliduje datę gregoriańską
ldate -- Formatuje lokalny czas/datę
lgetdate -- Pobiera informację o dacie/czasie w formie tablicy asocjacyjnej
    Klucze tablicy asocjacyjnej
    l"seconds" - sekundy
    l"minutes" - minuty
    l"hours" - godziny
    l"mday" - dzień miesiąca
    l"wday" - dzień tygodnia, liczbowo: od 0 - niedziela do 6 - sobota
    l"mon" - miesiąc, liczbowo
    l"year" - rok, liczbowo
    l"yday" - dzień roku, liczbowo, np. "299"
    l"weekday" - dzień tygodnia, tekstowo, pełna nazwa, np. "Friday"
    l"month" - miesiąc, tekstowo, pełna nazwa; np. "January"

lgettimeofday -- Aktualny czas. Funkcja zwraca tablicę asocjacyjną zawierającą dane odebrane z wywołania systemowego.
    Klucze tablicy
    l"sec" - sekundy
    l"usec" - mikrosekundy
    l"minuteswest" - minuty na zachód od Greenwich
    l"dsttime" - rodzaj czasu: letni/zimowy

lgmdate -- Formatuje datę/czas dla strefy GMT/CUT (zawsze podaje czas Greenwich - Greenwich Mean Time - GMT)
lgmmktime -- Ustala uniksowy znacznik czasu dla daty ze strefy GMT
lgmstrftime -- Formatuje czas/datę ze strefy GMT/CUT zgodnie z lokalizacją
llocaltime -- Pobiera czas lokalny
    Klucze tablicy asocjacyjnej
    l"tm_sec" - sekundy
    l"tm_min" - minuty
    l"tm_hour" - godziny
    l"tm_mday" - dzień miesiąca
    l"tm_mon" - miesiąc roku, 0 to styczeń
    l"tm_year" - ilość lat od 1900
    l"tm_wday" - dzień tygodnia
    l"tm_yday" - dzień roku
    l"tm_isdst" - czy aktualnie jest czas zimowy

lmicrotime -- Zwraca aktualny uniksowy znacznik czasu z mikrosekundami
lmktime -- Oblicza uniksowy znacznik czasu dla podanej daty w formacie ( int godzina, int minuta, int sekunda, int miesiąc, int dzień, int rok [, int letni/zimowy])
lstrftime -- Formatuje lokalną datę/czas zgodnie z lokalizacją
    symbole są rozpoznawane w szablonie formatującym
    l%a - skrótowa nazwa dnia tygodnia zgodnie z lokalizacją
    l%A - pełna nazwa dnia tygodnia zgodnie z lokalizacją
    l%b - skrótowa nazwa miesiąca zgodnie z lokalizacją
    l%B - pełna nazwa miesiąca zgodnie z lokalizacją
    l%c - preferowana reprezentacja daty i czasu zgodnie z lokalizacją
    l%C - numer wieku (rok podzielony przez 100 i skrócony do liczby całkowitej, przedział od 00 do 99)
    l%d - dzień miesiąca jako liczba dziesiętna (przedział od 01 do 31)
    l%D - to samo co %m/%d/%y
    l%e - dzień miesiąca jako liczba dziesiętna, przy czym pojedyncza cyfra poprzedzona jest spacją (przedział od " 1" do "31")
    l%g - tak jak %G, ale bez uwzględnienia wieku
    l%G - rok w zapisie czterocyfrowym, powiązany z numerem tygodnia wg ISO. Symbol ten ma ten sam format i wartość jak %Y, z tym wyjątkiem, że jeśli numer tygodnia wg ISO należy do poprzedniego lub następnego roku, to poprzedni lub następny rok jest zwracany przez ten symbol.
    l%h - tak jak %b
    l%H - godzina jako liczba dziesiętna w systemie 24-godzinnym (przedział od 00 do 23)
    l%I - godzina jako liczba dziesiętna w systemie 12-godzinnym (przedział od 01 do 12)
    l%j - dzień roku jako liczba dziesiętna (przedział od 001 do 366)
    l%m - miesiąc jako liczba dziesiętna (przedział od 01 do 12)
    l%M - minuty jako liczba dziesiętna
    l%n - znak nowej linii
    l%p - albo "am" lub "pm" zgodnie z podanym czasem, albo łańcuchy znaków odpowiadające lokalizacji
    l%r - czas w notacji a.m. lub p.m.
    l%R - czas w notacji 24-godzinnej
    l%S - sekundy jako liczba dziesiętna
    l%t - znak tabulacji
    l%T - aktualny czas, odpowiednik %H:%M:%S
    l%u - numer dnia tygodnia jako liczba dziesiętna [1,7], gdzie 1 oznacza poniedziałek
    l%U - numer tygodnia aktualnego roku jako liczba dziesiętna, począwszy od pierwszej niedzieli jako pierwszego dnia pierwszego tygodnia
    l%V - numer tygodnia aktualnego roku wg ISO 8601:1988 jako liczba dziesiętna, przedział od 01 do 53, gdzie tydzień 1 jest pierwszym tygodniem, którym ma co najmniej 4 dni w aktualnym roku, przy czym pierwszym dniem tygodnia jest poniedziałek. (Przy użyciu %G lub %g otrzymuje się rok, który odpowiada numerowi tygodnia dla podanego znacznika czasu).
    l%W - numer tygodnia aktualnego roku jako liczba dziesiętna, począwszy od pierwszego poniedziałku, jako pierwszego dnia pierwszego tygodnia
    l%w - dzień tygodnia jako liczba dziesiętna, począwszy od niedzieli - numer 0
    l%x - preferowana reprezentacja daty, zgodnie z lokalizacją, bez czasu
    l%X - preferowana reprezentacja czasu, zgodnie z lokalizacją, bez daty
    l%y - rok jako liczba dziesiętna, bez uwzględnienia wieku (przedział od 00 do 99)
    l%Y - rok jako liczba dziesiętna, z wiekiem włącznie
    l%Z - strefa czasowa, nazwa lub skrót
    l%% - znak "%"

lstrtotime -- Parsuje większość angielskich tekstowych opisów daty i czasu do uniksowego znacznika czasu
ltime -- Zwraca aktualny uniksowy znacznik czasu

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • wyciskamy.pev.pl
  • img
    \