![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Mam w bazie pole odzina typu TIME.
Czyli godzina przetrzymywana jest jako, np. 16:55:34 Testuje formularz i gdy użytkownik wpisze string to skrypt się wywala. Jak sprawdzać czy użytkownik wpisał poprawnie godzine? ps. musi być możliwość ręcznej edycji godziny (tylko godziny i minuty). Ten post edytował J4r0d 6.06.2006, 21:01:48 |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
chodzi ci o to, czy wpisał godzinę w poprawnym formacie? (np. 15:22 jest OK?)
moze byc regEx, ale nie zabezpieczysz sie latwo przed np. wpisaniem goindzy 65:98 :/ wiec, probujesz rozbic wpisana wartosc przez ':'. Jezeli otrzymujesz tablice dwuelementowa w wwyniku takiego rozbicia - OK, jedziesz dalej. A dalej rzutujesz oba elementy tablicy na int, sprawdzasz czy znajduja sie w odpowiednim przedziale (0-24, 0-59) i juz wiesz czy jest OK.
byc moze mozna to rozwiazac jakos bardziej "elegancko", ale wlasnie takie rozwiazanie wpadlo mi do glowy :> pozdr. |
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@siemakuba tez kiedys robilem podobnie. ale teraz tak mi wpadl pomysl, zeby rzutowac czas do znacznika czasu i spowrotem do godziny. jesli po przektalceniach godziny są ok, znaczy ze godzina jest poprawna:
Są jakies luki w tym systemie? Jak pisalem wpadlem na to teraz i za bardzo nie tescilem, ale wydaje sie byc ok. @J4r0d kto zapomnial o znaczikach w tytule? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) prosze poprawic |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
@nospor: bardzo fajna koncepcja! szybki test pokazal ze zalozenie jest sluszne. Niekoniecznie potrzebna jest @ z przodu, bo nawet takie wywolanie strtotime('siemakuba') zwraca bez problemu wartosc (00:00) i zadnego bledu (chyba ze E_NOTICE - sprawdzalem na E_ALL ~&E_NOTICE).
mozna zamiast malpy zrzutowac to na (bool) tak dla pewnosci. Chociaz zupelnie nie jest to konieczne. pozdr. |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Niekoniecznie potrzebna jest @ z Uwierz, potrzebna jest (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Moze masz wylaczone wyswietlanie warningow, ale moj trzeci przyklad pluje wlasnie warningiem, dlatego tez dalem malpe (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Cytat Warning: date(): Windows does not support dates prior to midnight (00:00:00), January 1, 1970 Na chama mozna by sie bawic w warunki, ale to by wydluzylo skrypt, ja chcialem to w jednej linii zmiescic |
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Warning: date(): Windows does not support dates prior to midnight (00:00:00), January 1, 1970 no, to wszystko jasne :) test przeprowadziłem na Unixie, i tak jak pisalem z wylaczonym E_NOTICE jedynie. Z małpą czy bez - koncepcja jest fajna i warta przyzwyczajenia sie do niej :) pozdr. edit: sorki... gapa jestem... display_errors = 0... edit2: Cytat ja chcialem to w jednej linii zmiescic tak, dobry one-liner nie jest zły :) Ten post edytował siemakuba 30.05.2006, 15:23:30 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 1.10.2025 - 22:04 |