[PHP] Dynamiczne tworzenie daty względem aktualnego dnia

Mam do zrobienia strone dla szkoły nauki jazdy. Stoję przed sporym jak dla mnie problemem gdyż nie potrafię rozwiązać jednego z założeń zlecenia mianowicie klient chce aby w jednym bloku była dynamicznie tworzona informacja o najbliższym kursie. Szkoła ta kursy rozpoczyna zawsze w pierwszy wtorek miesiąca o godzinie 16. Jak przekazać PHP by wyświetlał “NAJBLIŻSZY KURS 02.02.2010r godzina 16” a od dnia 03.02.2009 “NAJBLIŻSZY KURS 02.03.2010r godzina 16”. (2 dzien miesiąca to akurat przypadek)

Coś mi się wydaje że do tego rozwiązania będę potrzebował bazy danych z kalendarzem i zmiennymi dla każdego dnia tygodnia?

Dziękuję za każdą sugestię/rozwiązanie.

Nie koniecznie:)

Ja to sobie wyobrażam tak:

Jedna ze zmiennych stałych to aktualna data pobierana z serwera.

Kolejne 12 zmiennych to daty rozpoczęcia kursów.

Teraz potrzebujesz funkcji, która w zależności od aktualnie pobranej z serwera daty zwróci CI odpowiedni wynik.

Warunki do rozpatrzenia masz 4:

a) porównanie miesięcy tak aby konkretna data była porównywana z tą pobieraną z serwera

i tera tak (tak sobie to wymyśliłem) :))

Jak miesiące się zgadzają a data pobrana z serwera jest mniejsza niż zdefiniowana to różnica dat i ile dni jeszcze zostało do tego terminu.

Jak daty się zgadzają to komunikat, że dziś zaczyna się kurs.

A jak data pobierana z serwera jest wyższa niż ta zdefiniowana to różnica pomiędzy następną zdefiniowaną w kolejce a pobraną z serwera i komunikat ile do następnego terminu.

I tak sobie to 12 razy powtórzyć:)

Teraz tak - różnica dat to jedno a liczba dni to drugie, trzeba by dowiedzieć się jak tę różnicę dat przerobić na liczbę dni.

Tutaj masz przykłady tego jak podawać datę w formacie liczby dni:

http://pl2.php.net/manual/pl/function.time.php

Dwa to najlepiej jakby te 12 dat rozpoczęcia kursów było zdefiniowane nie na sztywno a dynamicznie - bo inaczej to będziesz co roku zmieniał 12 dat:)))

I jeszcze jedno. Nie jestem mistrzuniem w te klocki, więc pewnie da się to prościej rozparcelować. No ale od czegoś można zawsze zacząć :))

Dzięki za pomysł, postaram się zrobić właśnie taki “zegarek” który będzie odliczał pozostałe dni do kursu. Jednak nie wiem czy dam rade od strony technicznej, może ktoś zna, robił, widział podobne rozwiązania?

Gdzieś w sieci trafiłem na taką oto funkcję - choć pewnie da się to prościej rozwiązać

w pierwszym parametrze podajesz dzień tygodnia od 0 - niedziela, do 6 - sobota

w kolejnym numer tygodnia 1-4

dwa ostatnie to numer miesiąca i rok

przykład wywołania:

echo get_Xth_DOW(2,1,2,2010);

-czyli wtorek, pierwszy tydzień miesiąca lutego 2010r - wynik 2

-teraz sobie sprawdź w kalendarzu, czy faktycznie w lutym pierwszy wtorek wypadnie 2giego :wink:

skrypt można też przerobić by operował na dacie aktualnej.

Zobacz też http://filchiprogrammer.wordpress.com/2 … the-month/

Jednak jest zmiana, kurs rozpoczyna się w pierwszy i trzeci wtorek miesiąca. Sam tego chyba nie napiszę, prosiłbym o gotową funkcję :slight_smile:

Nie sprawdzałem zbyt dokładnie, ale powinien działać.

Pobiera datę najblizszego kursu uwzględniając aktualną datę, bierze poprawkę na zmianę miesiąca i roku.

ps.

Bez komentarza.

Dodane 05.02.2010 (Pt) 22:36

api twoja funkcja działa a właściwie działała tylko na 1 kurs bo na drugi pokazało że jest 16.16.2010 :frowning: