![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 7.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Kłaniam się.
Nie wiem dokładnie gdzie coś takiego zamówić więc dlatego piszę tutaj. Mianowicie chciałbym zlecić odpłatnie zrobienie pewnej funkcji, która ma na celu sprawdzenia poprawności daty z zapisu w konkretnej formie. Skrypt pobiera wartość $_GET daty zapisanej w postaci 'ddmmYYYY' tj. np. dla 2 lutego 2024 roku --> 02022024, a np. dla 9 listopada 2013 --> 09112013 Potrzebuje teraz funkcji, która odrzuci wartość $_GET z błędną data. Na razie poradziłem sobie tylko z wymuszeniem by data była ośmioznakowym ciągiem cyfr. Lecz teraz sprawa jest bardziej skomplikowana. Otóż data powinna zostać zaakceptowana tylko jeśli: - wartosc dni i miesięcy w niej nie jest większa niz 31 dla dni i 12 dla miesiąca - wartosc dni w lutym nie jest wyzsza niz 29 dla roku przestpnego i 28 w roku nieprzestepnym - wartość dni w miesiącach kwiecien, czerwiec, wrzesien, listopad nie jest wyższa niż 30 - wartość dni w miesiącach styczeń, marzec, maj, lipiec, sierpien, październik, grudzień nie jest wyższa niż 31 - data nie jest dniem dzisiejszym i dniami wcześniejszymi tj. akceptuje tylko daty od dnia jutrzejszego z jutrzejszym wlacznie w efekcie jeśli chodzi o kod PHP miałoby to wyglądać mw. tak (np. gdyby funkcja nazywała się checkdatefromget):
Jest to dla mnie zbyt skomplikowane gdyż jestem początkującym "programistą" i nie znam wszystkich możliwości PHP. Ograniczam się do pisania prostych skryptów. Zależy mi na czasie i dlatego chciałbym zamówić gotowca, bo sam nie dałbym rady stworzyć takiej funkcji nawet siedząc tydzień. Jeśli są jacyś chętni to zapraszam na PW. MODERATORA PROSZĘ O PRZENESIENIE TEMATU DO ODPOWIEDNIEGO DZIAŁU Ten post edytował wbeatn 7.06.2014, 17:13:29 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
Nie ten dział.
Poszlo PW ![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Już bez przesady...
Napisane z palca, więc może się coś posypać. Dowolną kwotę wpłać na dowolną fundację OPP: http://www.mpips.gov.pl/bip/wykaz-organiza...ku-publicznego/ EDIT: Kod można znacząco skrócić wykorzystując przykład @maniek74 - dodając jeszcze sprawdzanie czy data jest datą w przyszłości. Ten post edytował Crozin 7.06.2014, 17:34:35 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 26.08.2013 Ostrzeżenie: (0%) ![]() ![]() |
Pozdrawiam ps. Nie musisz nic kombinować więcej, jesli data jest nie poprawna zwróci false poprawna true Ten post edytował maniek74 7.06.2014, 17:22:50 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@maniek74: Twój kod może wyrzucić wyjątek, który wywali całą aplikację.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 26.08.2013 Ostrzeżenie: (0%) ![]() ![]() |
Jaki, możesz podac przykład, bo testowałem i rózne bzdury wpisaywał i jak było poprawnie to zwracało true a jak nie to false.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 7.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje wielkie!
PS. Swoją drogą wychodzi moj brak znajomosci fukcji PHP etc. Nie sadzilem ze to moze byc tak nieduzy kod Ten post edytował wbeatn 7.06.2014, 17:32:13 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Ahh... pomyłka. DateTime::createFromFormat nie wywali wyjątku w przeciwieństwie do konstruktora DateTime.
![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 26.08.2013 Ostrzeżenie: (0%) ![]() ![]() |
Nie ma opcji żeby wywaliło, sprawdziłem na wszystkie sposoby zamiast cyfr dałem litery i też dobrze działa Ten post edytował maniek74 7.06.2014, 17:36:38 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 7.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nie ma opcji żeby wywaliło, sprawdziłem na wszystkie sposoby zamiast cyfr dałem litery i też dobrze działa Niestety w tym kodzie np. data 09032014 daje wynik 'poprawna' a powinno dawac 'nie', bo 9 marca 2014 jest za nami - jak sie domyslam kwestiatego, ze wartosc dnia jest wyzsza niz dnia daty dzisiejszej - czyli wieksza od 07 Jakaś rada? Póki co rozwiązanie od Crozin działa elegencko! Niech Bóg ci błogosławi jeśliś nie ateista! Ten post edytował wbeatn 7.06.2014, 18:22:15 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 11:19 |