kraks
23.06.2008, 09:43:01
Witam, mam w formularzu pole <input type="datetime" name="wjazd" />. Chcialbym uniknac sytuacji gdzie uzytkownik ktory bedzie wypelnial formularz poda date i czas w zlym formacie. (o ile wiem prawidlowo powinno byc RRRR-MM-DD HH-MM-SS). Jak wiec wprowadzic jakas maske wprowadzania dla tego pola tak aby uzytkownik musial wpisac date w dobrej formie. No i przydaloby sie tez aby ta maska uwzgledniala tylko RRRR-MM-DD HH-MM a sekundy np zawsze wstawiala na 00 bo chyba bez sensu zeby uzytkownik musial podawac czas z dokladnoscia do sekund,wystarczy ze wpisze date godzine i minuty. Prosze o pomoc i pozdrawiam
legorek
23.06.2008, 10:50:37
Musisz założyć, że użytkownik jest idiotą. Jeśli dasz mu jedno pole i napiszesz że wypełnić w formacie RRRR-MM-DD to i tak duża szansa że wypełni DD-MM-RRRR, albo nawet MM-DD-RRRR. Nie będziesz wiedział czy użytkownik pisząc 01-12-2008 ma na mysli 1 grudnia czy 12 stycznia. Dlatego najlepiej rozbić pole z datą na 3 oddzielne pola select, przy czym miesiąc zapisać za pomocą nazwy zamiast liczb. Tak samo z godziną. Jeśli rozmawiamy o polu datatime, końcówkę się nie martw, jeśli pominiesz minuty czy sekundy, baza automatycznie podstawi za nie 00.
kraks
23.06.2008, 11:22:48
Przerobilem kalendarzyk w javascripcie wstawiajacy wybrana z kalendarza date do pola w ten sposob ze dodaje rowniez aktualna godzine. Z tego co jednak zauwazylem godzina jest w formacie np 12:4 zamiast 12:04 tak wiec dla dzisiejszego dnia moje pole wyglada nastepujaco 2008-06-23 12:9. To pole w bazie danych jest typu datetime. Czy jesli otrzyma wartosc 2008-06-23 12:9 nie wyrzuci bledu? No i jak wyglada sprawa z separatorami daty i godziny czyli : i /. Z tego co sie orientuje pole datetime musi dostac wartosci w formacie RRRR:MM:DD HH:MM:SS wiec czy sie nie wysypie cos jesli sprobuje dodac rekord o wartosci 2008-06-23 12:9? Dzieki za pomoc
legorek
23.06.2008, 11:41:01
Może po prostu sprawdź

Data 2008-06-23 12:9 na pewno zostanie przyjęta. Zawsze możesz przed wrzuceniem do zrobić w PHP: date(Y-m-d H:i:s, strtotime($_POST['datetime'));