Ostatnio w pracy tworzyłem internetowy formularz na potrzeby
pewnej firmy. W tym formularzu było potrzebne pole, w którym użytkownik
wpisywał datę. Klient zażyczył sobie, że aplikacja internetowa musi działać na
przeglądarce Internet Explorer.
IE nie wspiera inputa typu datetime, więc postanowiłem
skorzystać z zwykłego inputa typu text i wyrażenia regularnego. Użytkownik, aby
poprawnie walidować cały formularz musiał podać datę w formacie DD-MM-YYYY. Następnie
przy pomocy JS zapisywałem go do zmiennej
var d = new Date(dataTimeInputString);
Wszystko działało bez problemu. U siebie testowałem to
głównie datą 11-11-2011 ponieważ najłatwiej się ją wpisuje na klawiaturze.
Po wgraniu u klienta, został zakomunikowany błąd, że coś nie
działa. Po analizie okazało się, że przy próbie wprowadzenia daty 30-08-2017
wyskakuje błąd.
Konstruktor z jednym parametrem tekstowym
dla Date potrzebuje daty w formacie MM-DD-YYYY. Dla takich dat, w których dzień
miesiąca jest mniejszy bądź równy dwanaście wszystko działało poprawnie. W przeciwnym
wypadku powstawał błąd
Invalid Date
Morał z tej historii jest taki, że trzeba czytać dokumentacje,
co dokładnie przyjmuje dany parametr w konstruktorze i przy testowaniu funkcjonalności używać
różnych wartości, a nie tylko tych samych.
Komentarze
Prześlij komentarz