Różne usługi online mają różne wartości maksymalnego roku wygaśnięcia, jeśli chodzi o karty kredytowe.
Na przykład:
- Basecamp: +15 lat (2025)
- Amazon: +20 lat (2030)
- Paypal: +19 lat (2029)
Jakie jest tutaj rozsądne maksimum? Czy są jakieś oficjalne wytyczne?
date
max
credit-card
billing
Sztuka
źródło
źródło
Odpowiedzi:
Nie ma oficjalnych wytycznych, ponieważ wydawcy kart kredytowych mogą wybrać każdą z nich, kiedy wydane przez nich karty wygaśnie. W rzeczywistości wydawali karty przez coraz dłuższe okresy. Jeśli próbujesz określić, jak daleko w przyszłość powinieneś uwzględnić daty wygaśnięcia, zachowaj bezpieczeństwo i daj swoim klientom wiele lat do wyboru. W ten sposób zabezpieczasz swoją aplikację w przyszłości.
Do Twojej wiadomości, wielu wydawców kart kredytowych nie korzysta z daty ważności przy podejmowaniu decyzji o zatwierdzeniu zakupu karty kredytowej. Więc jeśli martwisz się, że podana zostanie nieprawidłowa data, procesor ostatecznie będzie miał ostatnie słowo w sprawie tego, czy transakcja zostanie zatwierdzona, czy nie, więc nie martwiłbym się tym.
Lipiec 2017 : Właśnie miałem użytkownika końcowego z kartą, która wygasła prawie 50 lat od teraz.
źródło
Albo dynamicznie dodawałbym + 15-20 lat do roku bieżącej daty, albo wprowadzałbym pole tekstowe dla roku (co osobiście uważam, że szybciej wpisuję dwie cyfry niż przewijanie listy lat).
źródło
Jako teoretyczny górny limit proponuję, abyś nie musiał brać pod uwagę więcej niż oczekiwana żywotność posiadacza karty. Wikipedia robi to w swoich standardach redakcyjnych dotyczących biografii żyjących osób :
Tak więc w swoim kodzie wyszukaj bieżący rok, dodaj 115 i użyj tego jako teoretycznego górnego limitu daty ważności karty kredytowej. Nigdy więcej nie będziesz musiał dotykać tego kodu.
źródło
max
na wypadek gdyby najstarsza osoba użyła formularza po ukończeniu 116 lat ...: [Oto fragment kodu JavaScript, którego możesz użyć do wyświetlenia dostosowywanej listy nadchodzących lat do walidacji CC:
źródło
Oto lista najlepszych sprzedawców internetowych w USA:
źródło
Dobra rozmowa, @Alistair.
Oto generowanie miesiąca i roku w ASP.NET MVC. Dodaj to do swojego modelu widoku:
A to według twojego punktu widzenia:
źródło
Podczas gdy drugi przykład działa dwa razy szybciej niż pierwszy, nadal uzyskujesz datę i wyodrębniasz z niej rok 20 razy, a nie 40 razy. Lepszym rozwinięciem pętli jest:
Będzie to około 20 razy szybsze niż w dwukrotnie szybszym przykładzie, a także rozwiązuje niewielki błąd w oryginalnym kodzie, polegający na tym, że rok może się zmienić od jednego pobrania daty do następnego, prowadząc do nieoczekiwanych, choć w tym przypadku nieszkodliwych wyników.
źródło
źródło
Jeśli potrzebujesz rozwiązania, które nie daje trzycyfrowych lat 2100+, musisz modulo datę, odpowiednio musisz wypełnić zerem wiodącym dla lat xx00-xx09, aby nie uzyskać lat jednocyfrowych.
Będzie to bardzo ważne od 2080 roku.
źródło
Po przeczytaniu górnej ważności PO wynoszącej 20 lat dla Amazon napisałem to proste rozwiązanie w PHP:
To znacznie zmniejszyło liczbę tych noworocznych wniosków o usunięcie
last year
z formularza.Szczuplejsza wersja pętli działa ~ dwa razy szybciej:
źródło
date('Y')
idate('y')
20 razy każdy jest raczej powolny?źródło